--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
android/app/src/main/java/com/meshchatx/MainActivity.java e0f1f99cd1c208c5008a936230c38e448dddd45d (e0f1f99c) Text, 79.87 KB
Tff7b72package T7ee787com.meshchatxTb4b4b4;
Tff7b72import T7ee787android.ManifestTb4b4b4;
Tff7b72import T7ee787android.annotation.SuppressLintTb4b4b4;
Tff7b72import T7ee787android.content.ActivityNotFoundExceptionTb4b4b4;
Tff7b72import T7ee787android.content.ClipDataTb4b4b4;
Tff7b72import T7ee787android.content.ClipboardManagerTb4b4b4;
Tff7b72import T7ee787android.content.ContentResolverTb4b4b4;
Tff7b72import T7ee787android.content.ContentValuesTb4b4b4;
Tff7b72import T7ee787android.content.ContextTb4b4b4;
Tff7b72import T7ee787android.content.IntentTb4b4b4;
Tff7b72import T7ee787android.content.SharedPreferencesTb4b4b4;
Tff7b72import T7ee787android.content.pm.PackageManagerTb4b4b4;
Tff7b72import T7ee787android.content.res.ConfigurationTb4b4b4;
Tff7b72import T7ee787android.hardware.usb.UsbManagerTb4b4b4;
Tff7b72import T7ee787android.net.UriTb4b4b4;
Tff7b72import T7ee787android.os.BatteryManagerTb4b4b4;
Tff7b72import T7ee787android.os.BuildTb4b4b4;
Tff7b72import T7ee787android.os.BundleTb4b4b4;
Tff7b72import T7ee787android.os.EnvironmentTb4b4b4;
Tff7b72import T7ee787android.os.HandlerTb4b4b4;
Tff7b72import T7ee787android.os.LooperTb4b4b4;
Tff7b72import T7ee787android.os.PowerManagerTb4b4b4;
Tff7b72import T7ee787android.content.IntentFilterTb4b4b4;
Tff7b72import T7ee787android.provider.MediaStoreTb4b4b4;
Tff7b72import T7ee787android.provider.SettingsTb4b4b4;
Tff7b72import T7ee787android.view.WindowManagerTb4b4b4;
Tff7b72import T7ee787android.webkit.CookieManagerTb4b4b4;
Tff7b72import T7ee787android.webkit.GeolocationPermissionsTb4b4b4;
Tff7b72import T7ee787android.webkit.PermissionRequestTb4b4b4;
Tff7b72import T7ee787android.webkit.ValueCallbackTb4b4b4;
Tff7b72import T7ee787android.webkit.WebChromeClientTb4b4b4;
Tff7b72import T7ee787android.webkit.WebResourceErrorTb4b4b4;
Tff7b72import T7ee787android.webkit.WebResourceRequestTb4b4b4;
Tff7b72import T7ee787android.webkit.WebSettingsTb4b4b4;
Tff7b72import T7ee787android.webkit.JavascriptInterfaceTb4b4b4;
Tff7b72import T7ee787android.webkit.SslErrorHandlerTb4b4b4;
Tff7b72import T7ee787android.webkit.WebViewTb4b4b4;
Tff7b72import T7ee787android.webkit.WebViewClientTb4b4b4;
Tff7b72import T7ee787android.widget.ImageViewTb4b4b4;
Tff7b72import T7ee787android.widget.ProgressBarTb4b4b4;
Tff7b72import T7ee787android.widget.TextViewTb4b4b4;
Tff7b72import T7ee787android.widget.ToastTb4b4b4;
Tff7b72import T7ee787androidx.activity.OnBackPressedCallbackTb4b4b4;
Tff7b72import T7ee787androidx.activity.result.ActivityResultLauncherTb4b4b4;
Tff7b72import T7ee787androidx.activity.result.contract.ActivityResultContractsTb4b4b4;
Tff7b72import T7ee787androidx.appcompat.app.AlertDialogTb4b4b4;
Tff7b72import T7ee787androidx.core.app.ActivityCompatTb4b4b4;
Tff7b72import T7ee787androidx.core.content.ContextCompatTb4b4b4;
Tff7b72import T7ee787androidx.core.content.FileProviderTb4b4b4;
Tff7b72import T7ee787androidx.core.view.WindowCompatTb4b4b4;
Tff7b72import T7ee787androidx.annotation.NullableTb4b4b4;
Tff7b72import T7ee787androidx.annotation.RequiresApiTb4b4b4;
Tff7b72import T7ee787androidx.appcompat.app.AppCompatActivityTb4b4b4;
Tff7b72import T7ee787androidx.appcompat.app.AppCompatDelegateTb4b4b4;
Tff7b72import T7ee787com.chaquo.python.PythonTb4b4b4;
Tff7b72import T7ee787com.chaquo.python.android.AndroidPlatformTb4b4b4;
Tff7b72import T7ee787java.io.FileTb4b4b4;
Tff7b72import T7ee787java.io.FileInputStreamTb4b4b4;
Tff7b72import T7ee787java.io.FileOutputStreamTb4b4b4;
Tff7b72import T7ee787java.io.IOExceptionTb4b4b4;
Tff7b72import T7ee787java.io.OutputStreamTb4b4b4;
Tff7b72import T7ee787java.io.PrintWriterTb4b4b4;
Tff7b72import T7ee787java.io.StringWriterTb4b4b4;
Tff7b72import T7ee787java.net.URLConnectionTb4b4b4;
Tff7b72import T7ee787java.util.ArrayListTb4b4b4;
Tff7b72import T7ee787java.util.ListTb4b4b4;
Tff7b72import T7ee787java.util.LocaleTb4b4b4;
Tff7b72import T7ee787java.util.regex.MatcherTb4b4b4;
Tff7b72import T7ee787java.util.regex.PatternTb4b4b4;
Tff7b72import T7ee787okhttp3.RequestTb4b4b4;
Tff7b72import T7ee787okhttp3.ResponseTb4b4b4;
Tff7b72import T7ee787org.json.JSONObjectTb4b4b4;
Tff7b72public Tff7b72class T56d364MainActivity Tff7b72extends Te6edf3AppCompatActivity Tb4b4b4{
Tff7b72private Tff7b72static Tff7b72final Te6edf3String Te6edf3SHELL_PREFS Tff7b72= Ta5d6ff"Ta5d6ffmeshchatx_shellTa5d6ff"Tb4b4b4;
Tff7b72private Tff7b72static Tff7b72final Te6edf3String Te6edf3PREF_UI_THEME Tff7b72= Ta5d6ff"Ta5d6ffui_themeTa5d6ff"Tb4b4b4;
Tff7b72private Tff7b72static Tff7b72final Te6edf3String Te6edf3PREF_BLOCK_SCREENSHOTS Tff7b72= Ta5d6ff"Ta5d6ffblock_screenshotsTa5d6ff"Tb4b4b4;
Tff7b72private Tff7b72static Tff7b72final Te6edf3String Te6edf3PREF_CLEAR_CLIPBOARD_ON_BACKGROUND Tff7b72= Ta5d6ff"Ta5d6ffclear_clipboard_on_backgroundTa5d6ff"Tb4b4b4;
Tff7b72private Tff7b72static Tff7b72final Te6edf3String Te6edf3PREF_REMOTE_BACKEND_URL Tff7b72= Ta5d6ff"Ta5d6ffremote_backend_urlTa5d6ff"Tb4b4b4;
Tff7b72private Tff7b72static Tff7b72final Te6edf3String Te6edf3THEME_DARK Tff7b72= Ta5d6ff"Ta5d6ffdarkTa5d6ff"Tb4b4b4;
Tff7b72private Tff7b72static Tff7b72final Te6edf3String Te6edf3THEME_LIGHT Tff7b72= Ta5d6ff"Ta5d6fflightTa5d6ff"Tb4b4b4;
Tff7b72private Te6edf3WebView Te6edf3webViewTb4b4b4;
Tff7b72private Te6edf3ProgressBar Te6edf3progressBarTb4b4b4;
Tff7b72private Te6edf3ImageView Te6edf3loadingLogoTb4b4b4;
Tff7b72private Te6edf3TextView Te6edf3loadingTextTb4b4b4;
Tff7b72private Te6edf3TextView Te6edf3errorTextTb4b4b4;
Tff7b72private Tff7b72static Tff7b72final Tffa657int Te6edf3SERVER_PORT Tff7b72= T79c0ff8000Tb4b4b4;
Tff7b72private Tff7b72static Tff7b72final Tffa657int Te6edf3RUNTIME_PERMISSIONS_REQUEST_CODE Tff7b72= T79c0ff1001Tb4b4b4;
Tff7b72private Tff7b72static Tff7b72final Tffa657int Te6edf3WEB_MEDIA_PERMISSION_REQUEST_CODE Tff7b72= T79c0ff1003Tb4b4b4;
Tff7b72private Tff7b72static Tff7b72final Tffa657int Te6edf3RNODE_BLUETOOTH_PERMISSION_REQUEST_CODE Tff7b72= T79c0ff1004Tb4b4b4;
Tff7b72private Tff7b72static Tff7b72final Tffa657int Te6edf3WEBVIEW_GEOLOCATION_PERMISSION_REQUEST_CODE Tff7b72= T79c0ff1006Tb4b4b4;
Tff7b72private Tff7b72static Tff7b72final Te6edf3String Te6edf3PREFS_NAME Tff7b72= Ta5d6ff"Ta5d6ffmeshchatxTa5d6ff"Tb4b4b4;
Tff7b72private Tff7b72static Tff7b72final Te6edf3String Te6edf3PREF_BATTERY_OPT_REQUESTED Tff7b72= Ta5d6ff"Ta5d6ffbattery_opt_requestedTa5d6ff"Tb4b4b4;
Tff7b72private Tff7b72static Tff7b72final Tffa657int Te6edf3MAX_CONNECTION_ATTEMPTS Tff7b72= T79c0ff120Tb4b4b4;
Tff7b72private Tff7b72static Tff7b72final Tffa657long Te6edf3CONNECTION_RETRY_INITIAL_DELAY_MS Tff7b72= T79c0ff500Tb4b4b4;
Tff7b72private Tff7b72static Tff7b72final Tffa657long Te6edf3CONNECTION_RETRY_MAX_DELAY_MS Tff7b72= T79c0ff5000Tb4b4b4;
Tff7b72private Tff7b72static Tff7b72final Tffa657int Te6edf3MESHCHAT_SERVER_START_MAX_ATTEMPTS Tff7b72= T79c0ff4Tb4b4b4;
Tff7b72private Tff7b72static Tff7b72final Tffa657long Te6edf3MESHCHAT_SERVER_RETRY_DELAY_MS Tff7b72= T79c0ff2000LTb4b4b4;
Tff7b72private Tff7b72final Te6edf3Handler Te6edf3mainHandler Tff7b72= Tff7b72new Te6edf3HandlerTb4b4b4(Te6edf3LooperTb4b4b4.Te6edf3getMainLooperTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tff7b72private Te6edf3PermissionRequest Te6edf3pendingWebPermissionRequest Tff7b72= Tff7b72nullTb4b4b4;
Tf0883e@Nullable
Tff7b72private Te6edf3GeolocationPermissionsTb4b4b4.Te6edf3Callback Te6edf3pendingGeolocationPermissionCallback Tff7b72= Tff7b72nullTb4b4b4;
Tf0883e@Nullable
Tff7b72private Te6edf3String Te6edf3pendingGeolocationOrigin Tff7b72= Tff7b72nullTb4b4b4;
Tff7b72private Te6edf3ValueCallbackTff7b72<Te6edf3UriTff7b72[Tff7b72]Tff7b72> Te6edf3filePathCallback Tff7b72= Tff7b72nullTb4b4b4;
Tff7b72private Tffa657boolean Te6edf3startupRequestHadLoadError Tff7b72= Tff7b72falseTb4b4b4;
Tff7b72private Tffa657boolean Te6edf3startupPageLoaded Tff7b72= Tff7b72falseTb4b4b4;
Tff7b72private Tffa657boolean Te6edf3backendFailed Tff7b72= Tff7b72falseTb4b4b4;
Tff7b72private Tffa657int Te6edf3meshchatServerStartAttempts Tff7b72= T79c0ff0Tb4b4b4;
Tff7b72private Tffa657int Te6edf3connectionAttempts Tff7b72= T79c0ff0Tb4b4b4;
Tff7b72private Te6edf3String Te6edf3pendingIntentUri Tff7b72= Tff7b72nullTb4b4b4;
Tf0883e@Nullable
Tff7b72private Te6edf3String Te6edf3pendingCallNotificationActionTb4b4b4;
Tf0883e@Nullable
Te6edf3TelephoneNativeAudioSession Te6edf3telephoneNativeSessionTb4b4b4;
Tf0883e@Nullable
Te6edf3WavPcmAttachmentRecorder Te6edf3attachmentPcmRecorderTb4b4b4;
Tff7b72private Tff7b72static Tff7b72final Te6edf3StringTff7b72[Tff7b72] Te6edf3STARTUP_PHASES Tff7b72= Tff7b72new Te6edf3StringTff7b72[Tff7b72] Tb4b4b4{
Ta5d6ff"Ta5d6ffStarting MeshChatX…Ta5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffGetting the network ready…Ta5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffAlmost there…Ta5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffOpening MeshChatX…Ta5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffFinishing up…Ta5d6ff"
Tb4b4b4}Tb4b4b4;
Tff7b72private Tffa657boolean Td2a8ffisAllowedWebViewNavigationUriTb4b4b4(Te6edf3Uri Te6edf3uriTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3uri Tff7b72=Tff7b72= Tff7b72nullTb4b4b4) Tb4b4b4{
Tff7b72return Tff7b72falseTb4b4b4;
Tb4b4b4}
Te6edf3String Te6edf3scheme Tff7b72= Te6edf3uriTb4b4b4.Te6edf3getSchemeTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3scheme Tff7b72=Tff7b72= Tff7b72nullTb4b4b4) Tb4b4b4{
Tff7b72return Tff7b72falseTb4b4b4;
Tb4b4b4}
Te6edf3String Te6edf3s Tff7b72= Te6edf3schemeTb4b4b4.Te6edf3toLowerCaseTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Ta5d6ff"Ta5d6ffaboutTa5d6ff"Tb4b4b4.Te6edf3equalsTb4b4b4(Te6edf3sTb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3String Te6edf3part Tff7b72= Te6edf3uriTb4b4b4.Te6edf3getSchemeSpecificPartTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72return Te6edf3part Tff7b72!Tff7b72= Tff7b72null Tff7b72&Tff7b72& Ta5d6ff"Ta5d6ffblankTa5d6ff"Tb4b4b4.Te6edf3equalsIgnoreCaseTb4b4b4(Te6edf3partTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Ta5d6ff"Ta5d6ffblobTa5d6ff"Tb4b4b4.Te6edf3equalsTb4b4b4(Te6edf3sTb4b4b4) Tff7b72|Tff7b72| Ta5d6ff"Ta5d6ffdataTa5d6ff"Tb4b4b4.Te6edf3equalsTb4b4b4(Te6edf3sTb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72return Tff7b72trueTb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Tff7b72!Ta5d6ff"Ta5d6ffhttpTa5d6ff"Tb4b4b4.Te6edf3equalsTb4b4b4(Te6edf3sTb4b4b4) Tff7b72&Tff7b72& Tff7b72!Ta5d6ff"Ta5d6ffhttpsTa5d6ff"Tb4b4b4.Te6edf3equalsTb4b4b4(Te6edf3sTb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72return Tff7b72falseTb4b4b4;
Tb4b4b4}
Te6edf3String Te6edf3host Tff7b72= Te6edf3uriTb4b4b4.Te6edf3getHostTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3host Tff7b72=Tff7b72= Tff7b72nullTb4b4b4) Tb4b4b4{
Tff7b72return Tff7b72falseTb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3RemoteBackendUrlTb4b4b4.Te6edf3isLoopbackHostTb4b4b4(Te6edf3hostTb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72return Tff7b72trueTb4b4b4;
Tb4b4b4}
Tff7b72return Te6edf3RemoteBackendUrlTb4b4b4.Te6edf3matchesBackendTb4b4b4(Te6edf3uriTb4b4b4.Te6edf3toStringTb4b4b4(Tb4b4b4)Tb4b4b4, Te6edf3resolveBackendUrlTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72private Tffa657void Td2a8ffopenExternalBrowserUriTb4b4b4(Te6edf3Uri Te6edf3uriTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3uri Tff7b72=Tff7b72= Tff7b72nullTb4b4b4) Tb4b4b4{
Tff7b72returnTb4b4b4;
Tb4b4b4}
Tff7b72try Tb4b4b4{
Te6edf3startActivityTb4b4b4(Tff7b72new Te6edf3IntentTb4b4b4(Te6edf3IntentTb4b4b4.Te6edf3ACTION_VIEWTb4b4b4, Te6edf3uriTb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3ActivityNotFoundException Te6edf3ignoredTb4b4b4) Tb4b4b4{
T8b949e// no browser installed
Tb4b4b4}
Tb4b4b4}
Tff7b72private Tff7b72final Te6edf3ActivityResultLauncherTff7b72<Te6edf3IntentTff7b72> Te6edf3filePickerLauncher Tff7b72= Te6edf3registerForActivityResultTb4b4b4(
Tff7b72new Te6edf3ActivityResultContractsTb4b4b4.Te6edf3StartActivityForResultTb4b4b4(Tb4b4b4)Tb4b4b4,
Te6edf3result Tff7b72-Tff7b72> Tb4b4b4{
Te6edf3UriTff7b72[Tff7b72] Te6edf3selection Tff7b72= Tff7b72nullTb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3resultTb4b4b4.Te6edf3getResultCodeTb4b4b4(Tb4b4b4) Tff7b72=Tff7b72= Te6edf3RESULT_OK Tff7b72&Tff7b72& Te6edf3resultTb4b4b4.Te6edf3getDataTb4b4b4(Tb4b4b4) Tff7b72!Tff7b72= Tff7b72nullTb4b4b4) Tb4b4b4{
Te6edf3Intent Te6edf3data Tff7b72= Te6edf3resultTb4b4b4.Te6edf3getDataTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3dataTb4b4b4.Te6edf3getClipDataTb4b4b4(Tb4b4b4) Tff7b72!Tff7b72= Tff7b72nullTb4b4b4) Tb4b4b4{
Tffa657int Te6edf3count Tff7b72= Te6edf3dataTb4b4b4.Te6edf3getClipDataTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3getItemCountTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3selection Tff7b72= Tff7b72new Te6edf3UriTff7b72[Te6edf3countTff7b72]Tb4b4b4;
Tff7b72for Tb4b4b4(Tffa657int Te6edf3i Tff7b72= T79c0ff0Tb4b4b4; Te6edf3i Tff7b72< Te6edf3countTb4b4b4; Te6edf3iTff7b72+Tff7b72+Tb4b4b4) Tb4b4b4{
Te6edf3selectionTff7b72[Te6edf3iTff7b72] Tff7b72= Te6edf3dataTb4b4b4.Te6edf3getClipDataTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3getItemAtTb4b4b4(Te6edf3iTb4b4b4)Tb4b4b4.Te6edf3getUriTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4} Tff7b72else Tff7b72if Tb4b4b4(Te6edf3dataTb4b4b4.Te6edf3getDataTb4b4b4(Tb4b4b4) Tff7b72!Tff7b72= Tff7b72nullTb4b4b4) Tb4b4b4{
Te6edf3selection Tff7b72= Tff7b72new Te6edf3UriTff7b72[Tff7b72] Tb4b4b4{ Te6edf3dataTb4b4b4.Te6edf3getDataTb4b4b4(Tb4b4b4) Tb4b4b4}Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3filePathCallback Tff7b72!Tff7b72= Tff7b72nullTb4b4b4) Tb4b4b4{
Te6edf3filePathCallbackTb4b4b4.Te6edf3onReceiveValueTb4b4b4(Te6edf3selectionTb4b4b4)Tb4b4b4;
Te6edf3filePathCallback Tff7b72= Tff7b72nullTb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tb4b4b4)Tb4b4b4;
Tf0883e@SuppressLintTb4b4b4(Ta5d6ff"Ta5d6ffSetJavaScriptEnabledTa5d6ff"Tb4b4b4)
Tf0883e@Override
Tff7b72protected Tffa657void Td2a8ffonCreateTb4b4b4(Te6edf3Bundle Te6edf3savedInstanceStateTb4b4b4) Tb4b4b4{
Tffa657boolean Te6edf3darkShell Tff7b72= Te6edf3isDarkUiThemeTb4b4b4(Te6edf3resolvePreferredUiThemeTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4;
Te6edf3getDelegateTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3setLocalNightModeTb4b4b4(
Te6edf3darkShell Tff7b72? Te6edf3AppCompatDelegateTb4b4b4.Te6edf3MODE_NIGHT_YES Tb4b4b4: Te6edf3AppCompatDelegateTb4b4b4.Te6edf3MODE_NIGHT_NO
Tb4b4b4)Tb4b4b4;
Te6edf3getThemeTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3applyStyleTb4b4b4(Te6edf3RTb4b4b4.Te6edf3styleTb4b4b4.Te6edf3OptOutEdgeToEdgeEnforcementTb4b4b4, Tff7b72falseTb4b4b4)Tb4b4b4;
Tff7b72superTb4b4b4.Te6edf3onCreateTb4b4b4(Te6edf3savedInstanceStateTb4b4b4)Tb4b4b4;
Te6edf3WindowCompatTb4b4b4.Te6edf3setDecorFitsSystemWindowsTb4b4b4(Te6edf3getWindowTb4b4b4(Tb4b4b4)Tb4b4b4, Tff7b72trueTb4b4b4)Tb4b4b4;
Te6edf3setContentViewTb4b4b4(Te6edf3RTb4b4b4.Te6edf3layoutTb4b4b4.Te6edf3activity_mainTb4b4b4)Tb4b4b4;
T8b949e// Mitigate overlay tapjacking without changing user-visible behavior.
Te6edf3getWindowTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3getDecorViewTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3setFilterTouchesWhenObscuredTb4b4b4(Tff7b72trueTb4b4b4)Tb4b4b4;
Te6edf3applyBlockScreenshotsTb4b4b4(Te6edf3isBlockScreenshotsEnabledTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4;
Te6edf3webView Tff7b72= Te6edf3findViewByIdTb4b4b4(Te6edf3RTb4b4b4.Te6edf3idTb4b4b4.Te6edf3webViewTb4b4b4)Tb4b4b4;
Te6edf3progressBar Tff7b72= Te6edf3findViewByIdTb4b4b4(Te6edf3RTb4b4b4.Te6edf3idTb4b4b4.Te6edf3progressBarTb4b4b4)Tb4b4b4;
Te6edf3loadingLogo Tff7b72= Te6edf3findViewByIdTb4b4b4(Te6edf3RTb4b4b4.Te6edf3idTb4b4b4.Te6edf3loadingLogoTb4b4b4)Tb4b4b4;
Te6edf3loadingText Tff7b72= Te6edf3findViewByIdTb4b4b4(Te6edf3RTb4b4b4.Te6edf3idTb4b4b4.Te6edf3loadingTextTb4b4b4)Tb4b4b4;
Te6edf3errorText Tff7b72= Te6edf3findViewByIdTb4b4b4(Te6edf3RTb4b4b4.Te6edf3idTb4b4b4.Te6edf3errorTextTb4b4b4)Tb4b4b4;
T8b949e// Match MeshChatX canvas so WebView never flashes default white during Chaquopy boot
T8b949e// or keyboard/resize gaps. Prefer last saved UI theme (default dark).
Te6edf3applyShellCanvasThemeTb4b4b4(Te6edf3resolvePreferredUiThemeTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4;
Te6edf3webViewTb4b4b4.Te6edf3setVisibilityTb4b4b4(Te6edf3androidTb4b4b4.Te6edf3viewTb4b4b4.Te6edf3ViewTb4b4b4.Te6edf3INVISIBLETb4b4b4)Tb4b4b4;
Tff7b72final Tffa657boolean Te6edf3remoteBackend Tff7b72= Te6edf3isRemoteBackendModeTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3showLoadingTb4b4b4(Te6edf3remoteBackend Tff7b72? Ta5d6ff"Ta5d6ffConnecting to remote backend…Ta5d6ff" Tb4b4b4: Ta5d6ff"Ta5d6ffStarting MeshChatX…Ta5d6ff"Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3remoteBackendTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3PythonTb4b4b4.Te6edf3isStartedTb4b4b4(Tb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72try Tb4b4b4{
Te6edf3PythonTb4b4b4.Te6edf3startTb4b4b4(Tff7b72new Te6edf3AndroidPlatformTb4b4b4(Tff7b72thisTb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3Exception Te6edf3eTb4b4b4) Tb4b4b4{
Te6edf3backendFailed Tff7b72= Tff7b72trueTb4b4b4;
Te6edf3showStartupErrorTb4b4b4(Ta5d6ff"Ta5d6ffMeshChatX Python runtime failed to start:Ta5d6ff"Tb4b4b4, Te6edf3toStackTraceTb4b4b4(Te6edf3eTb4b4b4)Tb4b4b4)Tb4b4b4;
Tff7b72returnTb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tff7b72try Tb4b4b4{
Te6edf3orgTb4b4b4.Te6edf3ableTb4b4b4.Te6edf3BLETb4b4b4.Te6edf3setAppContextTb4b4b4(Tff7b72thisTb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3Exception Te6edf3ignoredTb4b4b4) Tb4b4b4{
T8b949e// BLE class may be unavailable in incomplete builds.
Tb4b4b4}
Tb4b4b4}
Te6edf3requestRuntimePermissionsIfNeededTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3WebSettings Te6edf3webSettings Tff7b72= Te6edf3webViewTb4b4b4.Te6edf3getSettingsTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3webSettingsTb4b4b4.Te6edf3setJavaScriptEnabledTb4b4b4(Tff7b72trueTb4b4b4)Tb4b4b4;
Te6edf3webSettingsTb4b4b4.Te6edf3setDomStorageEnabledTb4b4b4(Tff7b72trueTb4b4b4)Tb4b4b4;
Te6edf3webSettingsTb4b4b4.Te6edf3setDatabaseEnabledTb4b4b4(Tff7b72trueTb4b4b4)Tb4b4b4;
Te6edf3webSettingsTb4b4b4.Te6edf3setAllowFileAccessTb4b4b4(Tff7b72trueTb4b4b4)Tb4b4b4;
Te6edf3webSettingsTb4b4b4.Te6edf3setAllowContentAccessTb4b4b4(Tff7b72trueTb4b4b4)Tb4b4b4;
Te6edf3webSettingsTb4b4b4.Te6edf3setMixedContentModeTb4b4b4(Te6edf3WebSettingsTb4b4b4.Te6edf3MIXED_CONTENT_ALWAYS_ALLOWTb4b4b4)Tb4b4b4;
Te6edf3webSettingsTb4b4b4.Te6edf3setMediaPlaybackRequiresUserGestureTb4b4b4(Tff7b72falseTb4b4b4)Tb4b4b4;
Te6edf3webSettingsTb4b4b4.Te6edf3setGeolocationEnabledTb4b4b4(Tff7b72trueTb4b4b4)Tb4b4b4;
Te6edf3webViewTb4b4b4.Te6edf3setWebViewClientTb4b4b4(Tff7b72new Te6edf3WebViewClientTb4b4b4(Tb4b4b4) Tb4b4b4{
Tf0883e@Override
Tf0883e@RequiresApiTb4b4b4(Te6edf3api Tff7b72= Te6edf3BuildTb4b4b4.Te6edf3VERSION_CODESTb4b4b4.Te6edf3NTb4b4b4)
Tff7b72public Tffa657boolean Td2a8ffshouldOverrideUrlLoadingTb4b4b4(Te6edf3WebView Te6edf3viewTb4b4b4, Te6edf3WebResourceRequest Te6edf3requestTb4b4b4) Tb4b4b4{
Te6edf3Uri Te6edf3uri Tff7b72= Te6edf3request Tff7b72!Tff7b72= Tff7b72null Tff7b72? Te6edf3requestTb4b4b4.Te6edf3getUrlTb4b4b4(Tb4b4b4) Tb4b4b4: Tff7b72nullTb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3isAllowedWebViewNavigationUriTb4b4b4(Te6edf3uriTb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72return Tff7b72falseTb4b4b4;
Tb4b4b4}
Te6edf3openExternalBrowserUriTb4b4b4(Te6edf3uriTb4b4b4)Tb4b4b4;
Tff7b72return Tff7b72trueTb4b4b4;
Tb4b4b4}
Tf0883e@Override
Tf0883e@SuppressWarningsTb4b4b4(Ta5d6ff"Ta5d6ffdeprecationTa5d6ff"Tb4b4b4)
Tff7b72public Tffa657boolean Td2a8ffshouldOverrideUrlLoadingTb4b4b4(Te6edf3WebView Te6edf3viewTb4b4b4, Te6edf3String Te6edf3urlTb4b4b4) Tb4b4b4{
Te6edf3Uri Te6edf3uri Tff7b72= Te6edf3url Tff7b72!Tff7b72= Tff7b72null Tff7b72? Te6edf3UriTb4b4b4.Te6edf3parseTb4b4b4(Te6edf3urlTb4b4b4) Tb4b4b4: Tff7b72nullTb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3isAllowedWebViewNavigationUriTb4b4b4(Te6edf3uriTb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72return Tff7b72falseTb4b4b4;
Tb4b4b4}
Te6edf3openExternalBrowserUriTb4b4b4(Te6edf3uriTb4b4b4)Tb4b4b4;
Tff7b72return Tff7b72trueTb4b4b4;
Tb4b4b4}
Tf0883e@Override
Tff7b72public Tffa657void Td2a8ffonPageFinishedTb4b4b4(Te6edf3WebView Te6edf3viewTb4b4b4, Te6edf3String Te6edf3urlTb4b4b4) Tb4b4b4{
Tff7b72superTb4b4b4.Te6edf3onPageFinishedTb4b4b4(Te6edf3viewTb4b4b4, Te6edf3urlTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3startupPageLoadedTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3isStartupRequestTb4b4b4(Te6edf3urlTb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72returnTb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3startupRequestHadLoadErrorTb4b4b4) Tb4b4b4{
Tff7b72returnTb4b4b4;
Tb4b4b4}
Te6edf3startupPageLoaded Tff7b72= Tff7b72trueTb4b4b4;
Te6edf3mainHandlerTb4b4b4.Te6edf3removeCallbacksAndMessagesTb4b4b4(Tff7b72nullTb4b4b4)Tb4b4b4;
Te6edf3hideStartupLoadingOverlayTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3dispatchPendingIntentUriTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3dispatchCallNotificationActionTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72returnTb4b4b4;
Tb4b4b4}
Te6edf3hideStartupLoadingOverlayTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tf0883e@Override
Tff7b72public Tffa657void Td2a8ffonPageStartedTb4b4b4(Te6edf3WebView Te6edf3viewTb4b4b4, Te6edf3String Te6edf3urlTb4b4b4, Te6edf3androidTb4b4b4.Te6edf3graphicsTb4b4b4.Te6edf3Bitmap Te6edf3faviconTb4b4b4) Tb4b4b4{
Tff7b72superTb4b4b4.Te6edf3onPageStartedTb4b4b4(Te6edf3viewTb4b4b4, Te6edf3urlTb4b4b4, Te6edf3faviconTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3startupPageLoaded Tff7b72&Tff7b72& Te6edf3isStartupRequestTb4b4b4(Te6edf3urlTb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3startupRequestHadLoadError Tff7b72= Tff7b72falseTb4b4b4;
Te6edf3webViewTb4b4b4.Te6edf3setVisibilityTb4b4b4(Te6edf3androidTb4b4b4.Te6edf3viewTb4b4b4.Te6edf3ViewTb4b4b4.Te6edf3INVISIBLETb4b4b4)Tb4b4b4;
Te6edf3progressBarTb4b4b4.Te6edf3setVisibilityTb4b4b4(Te6edf3androidTb4b4b4.Te6edf3viewTb4b4b4.Te6edf3ViewTb4b4b4.Te6edf3VISIBLETb4b4b4)Tb4b4b4;
Tff7b72returnTb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3startupPageLoadedTb4b4b4) Tb4b4b4{
Te6edf3progressBarTb4b4b4.Te6edf3setVisibilityTb4b4b4(Te6edf3androidTb4b4b4.Te6edf3viewTb4b4b4.Te6edf3ViewTb4b4b4.Te6edf3VISIBLETb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tf0883e@Override
Tff7b72public Tffa657void Td2a8ffonReceivedErrorTb4b4b4(Te6edf3WebView Te6edf3viewTb4b4b4, Te6edf3WebResourceRequest Te6edf3requestTb4b4b4, Te6edf3WebResourceError Te6edf3errorTb4b4b4) Tb4b4b4{
Tff7b72superTb4b4b4.Te6edf3onReceivedErrorTb4b4b4(Te6edf3viewTb4b4b4, Te6edf3requestTb4b4b4, Te6edf3errorTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3request Tff7b72!Tff7b72= Tff7b72null Tff7b72&Tff7b72& Te6edf3requestTb4b4b4.Te6edf3isForMainFrameTb4b4b4(Tb4b4b4) Tff7b72&Tff7b72& Te6edf3isStartupRequestTb4b4b4(Te6edf3requestTb4b4b4.Te6edf3getUrlTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3toStringTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3startupRequestHadLoadError Tff7b72= Tff7b72trueTb4b4b4;
Te6edf3viewTb4b4b4.Te6edf3stopLoadingTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3viewTb4b4b4.Te6edf3loadUrlTb4b4b4(Ta5d6ff"Ta5d6ffabout:blankTa5d6ff"Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3backendFailed Tff7b72&Tff7b72& Tff7b72!Te6edf3startupPageLoadedTb4b4b4) Tb4b4b4{
Te6edf3String Te6edf3description Tff7b72= Tb4b4b4(Te6edf3error Tff7b72!Tff7b72= Tff7b72nullTb4b4b4) Tff7b72? Te6edf3errorTb4b4b4.Te6edf3getDescriptionTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3toStringTb4b4b4(Tb4b4b4) Tb4b4b4: Ta5d6ff"Ta5d6ffUnknown errorTa5d6ff"Tb4b4b4;
Te6edf3showStartupErrorTb4b4b4(Ta5d6ff"Ta5d6ffWebView failed to load MeshChatX:Ta5d6ff"Tb4b4b4, Te6edf3descriptionTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tb4b4b4}
Tf0883e@Override
Tff7b72public Tffa657void Td2a8ffonReceivedErrorTb4b4b4(Te6edf3WebView Te6edf3viewTb4b4b4, Tffa657int Te6edf3errorCodeTb4b4b4, Te6edf3String Te6edf3descriptionTb4b4b4, Te6edf3String Te6edf3failingUrlTb4b4b4) Tb4b4b4{
Tff7b72superTb4b4b4.Te6edf3onReceivedErrorTb4b4b4(Te6edf3viewTb4b4b4, Te6edf3errorCodeTb4b4b4, Te6edf3descriptionTb4b4b4, Te6edf3failingUrlTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3isStartupRequestTb4b4b4(Te6edf3failingUrlTb4b4b4) Tff7b72&Tff7b72& Tff7b72!Te6edf3startupPageLoadedTb4b4b4) Tb4b4b4{
Te6edf3startupRequestHadLoadError Tff7b72= Tff7b72trueTb4b4b4;
Te6edf3viewTb4b4b4.Te6edf3stopLoadingTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3viewTb4b4b4.Te6edf3loadUrlTb4b4b4(Ta5d6ff"Ta5d6ffabout:blankTa5d6ff"Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3backendFailedTb4b4b4) Tb4b4b4{
Te6edf3showStartupErrorTb4b4b4(Ta5d6ff"Ta5d6ffWebView failed to load MeshChatX:Ta5d6ff"Tb4b4b4, Te6edf3descriptionTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tb4b4b4}
Tf0883e@SuppressLintTb4b4b4(Ta5d6ff"Ta5d6ffWebViewClientOnReceivedSslErrorTa5d6ff"Tb4b4b4)
Tf0883e@Override
Tff7b72public Tffa657void Td2a8ffonReceivedSslErrorTb4b4b4(Te6edf3WebView Te6edf3viewTb4b4b4, Te6edf3SslErrorHandler Te6edf3handlerTb4b4b4, Te6edf3androidTb4b4b4.Te6edf3netTb4b4b4.Te6edf3httpTb4b4b4.Te6edf3SslError Te6edf3errorTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3handler Tff7b72=Tff7b72= Tff7b72nullTb4b4b4) Tb4b4b4{
Tff7b72returnTb4b4b4;
Tb4b4b4}
Te6edf3String Te6edf3errorUrl Tff7b72= Te6edf3error Tff7b72!Tff7b72= Tff7b72null Tff7b72? Te6edf3errorTb4b4b4.Te6edf3getUrlTb4b4b4(Tb4b4b4) Tb4b4b4: Tff7b72nullTb4b4b4;
Te6edf3Uri Te6edf3uri Tff7b72= Te6edf3errorUrl Tff7b72!Tff7b72= Tff7b72null Tff7b72? Te6edf3UriTb4b4b4.Te6edf3parseTb4b4b4(Te6edf3errorUrlTb4b4b4) Tb4b4b4: Tff7b72nullTb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3isAllowedWebViewNavigationUriTb4b4b4(Te6edf3uriTb4b4b4)Tb4b4b4) Tb4b4b4{
T8b949e// Local and configured remote backends often use self-signed TLS.
Te6edf3handlerTb4b4b4.Te6edf3proceedTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72returnTb4b4b4;
Tb4b4b4}
Te6edf3handlerTb4b4b4.Te6edf3cancelTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3webViewTb4b4b4.Te6edf3addJavascriptInterfaceTb4b4b4(Tff7b72new Te6edf3MeshChatXAndroidBridgeTb4b4b4(Tff7b72thisTb4b4b4)Tb4b4b4, Ta5d6ff"Ta5d6ffMeshChatXAndroidTa5d6ff"Tb4b4b4)Tb4b4b4;
Te6edf3webViewTb4b4b4.Te6edf3setDownloadListenerTb4b4b4(Tff7b72thisTb4b4b4:Tb4b4b4:Te6edf3onWebViewDownloadStartTb4b4b4)Tb4b4b4;
Te6edf3webViewTb4b4b4.Te6edf3setWebChromeClientTb4b4b4(Tff7b72new Te6edf3WebChromeClientTb4b4b4(Tb4b4b4) Tb4b4b4{
Tf0883e@Override
Tff7b72public Tffa657void Td2a8ffonGeolocationPermissionsShowPromptTb4b4b4(Te6edf3String Te6edf3originTb4b4b4, Te6edf3GeolocationPermissionsTb4b4b4.Te6edf3Callback Te6edf3callbackTb4b4b4) Tb4b4b4{
Te6edf3runOnUiThreadTb4b4b4(Tb4b4b4(Tb4b4b4) Tff7b72-Tff7b72> Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3callback Tff7b72=Tff7b72= Tff7b72nullTb4b4b4) Tb4b4b4{
Tff7b72returnTb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3ContextCompatTb4b4b4.Te6edf3checkSelfPermissionTb4b4b4(Te6edf3MainActivityTb4b4b4.Te6edf3thisTb4b4b4, Te6edf3ManifestTb4b4b4.Te6edf3permissionTb4b4b4.Te6edf3ACCESS_FINE_LOCATIONTb4b4b4)
Tff7b72=Tff7b72= Te6edf3PackageManagerTb4b4b4.Te6edf3PERMISSION_GRANTED
Tff7b72|Tff7b72| Te6edf3ContextCompatTb4b4b4.Te6edf3checkSelfPermissionTb4b4b4(Te6edf3MainActivityTb4b4b4.Te6edf3thisTb4b4b4, Te6edf3ManifestTb4b4b4.Te6edf3permissionTb4b4b4.Te6edf3ACCESS_COARSE_LOCATIONTb4b4b4)
Tff7b72=Tff7b72= Te6edf3PackageManagerTb4b4b4.Te6edf3PERMISSION_GRANTEDTb4b4b4) Tb4b4b4{
Te6edf3callbackTb4b4b4.Te6edf3invokeTb4b4b4(Te6edf3originTb4b4b4, Tff7b72trueTb4b4b4, Tff7b72falseTb4b4b4)Tb4b4b4;
Tff7b72returnTb4b4b4;
Tb4b4b4}
Te6edf3pendingGeolocationOrigin Tff7b72= Te6edf3originTb4b4b4;
Te6edf3pendingGeolocationPermissionCallback Tff7b72= Te6edf3callbackTb4b4b4;
Te6edf3ActivityCompatTb4b4b4.Te6edf3requestPermissionsTb4b4b4(
Te6edf3MainActivityTb4b4b4.Te6edf3thisTb4b4b4,
Tff7b72new Te6edf3StringTff7b72[Tff7b72] Tb4b4b4{
Te6edf3ManifestTb4b4b4.Te6edf3permissionTb4b4b4.Te6edf3ACCESS_FINE_LOCATIONTb4b4b4,
Te6edf3ManifestTb4b4b4.Te6edf3permissionTb4b4b4.Te6edf3ACCESS_COARSE_LOCATIONTb4b4b4,
Tb4b4b4}Tb4b4b4,
Te6edf3WEBVIEW_GEOLOCATION_PERMISSION_REQUEST_CODE
Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tf0883e@Override
Tff7b72public Tffa657void Td2a8ffonGeolocationPermissionsHidePromptTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3runOnUiThreadTb4b4b4(Tb4b4b4(Tb4b4b4) Tff7b72-Tff7b72> Tb4b4b4{
Te6edf3pendingGeolocationPermissionCallback Tff7b72= Tff7b72nullTb4b4b4;
Te6edf3pendingGeolocationOrigin Tff7b72= Tff7b72nullTb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tf0883e@Override
Tff7b72public Tffa657void Td2a8ffonPermissionRequestTb4b4b4(Tff7b72final Te6edf3PermissionRequest Te6edf3requestTb4b4b4) Tb4b4b4{
Te6edf3runOnUiThreadTb4b4b4(Tb4b4b4(Tb4b4b4) Tff7b72-Tff7b72> Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3request Tff7b72=Tff7b72= Tff7b72nullTb4b4b4) Tb4b4b4{
Tff7b72returnTb4b4b4;
Tb4b4b4}
Tffa657boolean Te6edf3needsAudioCapture Tff7b72= Tff7b72falseTb4b4b4;
Tffa657boolean Te6edf3needsVideoCapture Tff7b72= Tff7b72falseTb4b4b4;
Tff7b72for Tb4b4b4(Te6edf3String Te6edf3resource Tb4b4b4: Te6edf3requestTb4b4b4.Te6edf3getResourcesTb4b4b4(Tb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3PermissionRequestTb4b4b4.Te6edf3RESOURCE_AUDIO_CAPTURETb4b4b4.Te6edf3equalsTb4b4b4(Te6edf3resourceTb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3needsAudioCapture Tff7b72= Tff7b72trueTb4b4b4;
Tb4b4b4} Tff7b72else Tff7b72if Tb4b4b4(Te6edf3PermissionRequestTb4b4b4.Te6edf3RESOURCE_VIDEO_CAPTURETb4b4b4.Te6edf3equalsTb4b4b4(Te6edf3resourceTb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3needsVideoCapture Tff7b72= Tff7b72trueTb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3needsAudioCapture Tff7b72&Tff7b72& Tff7b72!Te6edf3needsVideoCaptureTb4b4b4) Tb4b4b4{
Te6edf3requestTb4b4b4.Te6edf3grantTb4b4b4(Te6edf3requestTb4b4b4.Te6edf3getResourcesTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tff7b72returnTb4b4b4;
Tb4b4b4}
Te6edf3ListTff7b72<Te6edf3StringTff7b72> Te6edf3missingPermissions Tff7b72= Tff7b72new Te6edf3ArrayListTff7b72<Tff7b72>Tb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(
Te6edf3needsAudioCapture Tff7b72&Tff7b72&
Te6edf3ContextCompatTb4b4b4.Te6edf3checkSelfPermissionTb4b4b4(Te6edf3MainActivityTb4b4b4.Te6edf3thisTb4b4b4, Te6edf3ManifestTb4b4b4.Te6edf3permissionTb4b4b4.Te6edf3RECORD_AUDIOTb4b4b4)
Tff7b72!Tff7b72= Te6edf3PackageManagerTb4b4b4.Te6edf3PERMISSION_GRANTED
Tb4b4b4) Tb4b4b4{
Te6edf3missingPermissionsTb4b4b4.Te6edf3addTb4b4b4(Te6edf3ManifestTb4b4b4.Te6edf3permissionTb4b4b4.Te6edf3RECORD_AUDIOTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(
Te6edf3needsVideoCapture Tff7b72&Tff7b72&
Te6edf3ContextCompatTb4b4b4.Te6edf3checkSelfPermissionTb4b4b4(Te6edf3MainActivityTb4b4b4.Te6edf3thisTb4b4b4, Te6edf3ManifestTb4b4b4.Te6edf3permissionTb4b4b4.Te6edf3CAMERATb4b4b4)
Tff7b72!Tff7b72= Te6edf3PackageManagerTb4b4b4.Te6edf3PERMISSION_GRANTED
Tb4b4b4) Tb4b4b4{
Te6edf3missingPermissionsTb4b4b4.Te6edf3addTb4b4b4(Te6edf3ManifestTb4b4b4.Te6edf3permissionTb4b4b4.Te6edf3CAMERATb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3missingPermissionsTb4b4b4.Te6edf3isEmptyTb4b4b4(Tb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3StringTff7b72[Tff7b72] Te6edf3allowed Tff7b72= Te6edf3grantableWebPermissionResourcesTb4b4b4(Te6edf3requestTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3allowedTb4b4b4.Te6edf3length Tff7b72> T79c0ff0Tb4b4b4) Tb4b4b4{
Te6edf3requestTb4b4b4.Te6edf3grantTb4b4b4(Te6edf3allowedTb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72else Tb4b4b4{
Te6edf3requestTb4b4b4.Te6edf3denyTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72returnTb4b4b4;
Tb4b4b4}
Te6edf3pendingWebPermissionRequest Tff7b72= Te6edf3requestTb4b4b4;
Te6edf3ActivityCompatTb4b4b4.Te6edf3requestPermissionsTb4b4b4(
Te6edf3MainActivityTb4b4b4.Te6edf3thisTb4b4b4,
Te6edf3missingPermissionsTb4b4b4.Te6edf3toArrayTb4b4b4(Tff7b72new Te6edf3StringTff7b72[T79c0ff0Tff7b72]Tb4b4b4)Tb4b4b4,
Te6edf3WEB_MEDIA_PERMISSION_REQUEST_CODE
Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tf0883e@Override
Tff7b72public Tffa657void Td2a8ffonPermissionRequestCanceledTb4b4b4(Te6edf3PermissionRequest Te6edf3requestTb4b4b4) Tb4b4b4{
Te6edf3runOnUiThreadTb4b4b4(Tb4b4b4(Tb4b4b4) Tff7b72-Tff7b72> Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3pendingWebPermissionRequest Tff7b72=Tff7b72= Te6edf3requestTb4b4b4) Tb4b4b4{
Te6edf3pendingWebPermissionRequest Tff7b72= Tff7b72nullTb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tf0883e@Override
Tff7b72public Tffa657boolean Td2a8ffonShowFileChooserTb4b4b4(
Te6edf3WebView Te6edf3webViewTb4b4b4,
Te6edf3ValueCallbackTff7b72<Te6edf3UriTff7b72[Tff7b72]Tff7b72> Te6edf3filePathCallbackTb4b4b4,
Te6edf3WebChromeClientTb4b4b4.Te6edf3FileChooserParams Te6edf3fileChooserParams
Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3MainActivityTb4b4b4.Te6edf3thisTb4b4b4.Te6edf3filePathCallback Tff7b72!Tff7b72= Tff7b72nullTb4b4b4) Tb4b4b4{
Te6edf3MainActivityTb4b4b4.Te6edf3thisTb4b4b4.Te6edf3filePathCallbackTb4b4b4.Te6edf3onReceiveValueTb4b4b4(Tff7b72nullTb4b4b4)Tb4b4b4;
Tb4b4b4}
Te6edf3MainActivityTb4b4b4.Te6edf3thisTb4b4b4.Te6edf3filePathCallback Tff7b72= Te6edf3filePathCallbackTb4b4b4;
Te6edf3Intent Te6edf3chooserIntentTb4b4b4;
Tff7b72try Tb4b4b4{
Te6edf3chooserIntent Tff7b72= Te6edf3fileChooserParams Tff7b72!Tff7b72= Tff7b72null
Tff7b72? Te6edf3fileChooserParamsTb4b4b4.Te6edf3createIntentTb4b4b4(Tb4b4b4)
Tb4b4b4: Tff7b72new Te6edf3IntentTb4b4b4(Te6edf3IntentTb4b4b4.Te6edf3ACTION_GET_CONTENTTb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3Exception Te6edf3eTb4b4b4) Tb4b4b4{
Te6edf3chooserIntent Tff7b72= Tff7b72new Te6edf3IntentTb4b4b4(Te6edf3IntentTb4b4b4.Te6edf3ACTION_GET_CONTENTTb4b4b4)Tb4b4b4;
Tb4b4b4}
Te6edf3chooserIntentTb4b4b4.Te6edf3addCategoryTb4b4b4(Te6edf3IntentTb4b4b4.Te6edf3CATEGORY_OPENABLETb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3chooserIntentTb4b4b4.Te6edf3getTypeTb4b4b4(Tb4b4b4) Tff7b72=Tff7b72= Tff7b72nullTb4b4b4) Tb4b4b4{
Te6edf3chooserIntentTb4b4b4.Te6edf3setTypeTb4b4b4(Ta5d6ff"Ta5d6ff*/*Ta5d6ff"Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3fileChooserParams Tff7b72!Tff7b72= Tff7b72null Tff7b72&Tff7b72& Te6edf3fileChooserParamsTb4b4b4.Te6edf3getAcceptTypesTb4b4b4(Tb4b4b4) Tff7b72!Tff7b72= Tff7b72nullTb4b4b4) Tb4b4b4{
Te6edf3StringTff7b72[Tff7b72] Te6edf3acceptTypes Tff7b72= Te6edf3fileChooserParamsTb4b4b4.Te6edf3getAcceptTypesTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3ArrayListTff7b72<Te6edf3StringTff7b72> Te6edf3mimeTypes Tff7b72= Tff7b72new Te6edf3ArrayListTff7b72<Tff7b72>Tb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72for Tb4b4b4(Te6edf3String Te6edf3acceptType Tb4b4b4: Te6edf3acceptTypesTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3acceptType Tff7b72=Tff7b72= Tff7b72null Tff7b72|Tff7b72| Te6edf3acceptTypeTb4b4b4.Te6edf3isEmptyTb4b4b4(Tb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72continueTb4b4b4;
Tb4b4b4}
Te6edf3String Te6edf3trimmed Tff7b72= Te6edf3acceptTypeTb4b4b4.Te6edf3trimTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3trimmedTb4b4b4.Te6edf3startsWithTb4b4b4(Ta5d6ff"Ta5d6ff.Ta5d6ff"Tb4b4b4)Tb4b4b4) Tb4b4b4{
T8b949e// Extension filters are not valid MIME types for EXTRA_MIME_TYPES.
T8b949e// Use octet-stream so identity backups without a MIME mapping remain selectable.
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3mimeTypesTb4b4b4.Te6edf3containsTb4b4b4(Ta5d6ff"Ta5d6ffapplication/octet-streamTa5d6ff"Tb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3mimeTypesTb4b4b4.Te6edf3addTb4b4b4(Ta5d6ff"Ta5d6ffapplication/octet-streamTa5d6ff"Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3mimeTypesTb4b4b4.Te6edf3containsTb4b4b4(Ta5d6ff"Ta5d6ff*/*Ta5d6ff"Tb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3mimeTypesTb4b4b4.Te6edf3addTb4b4b4(Ta5d6ff"Ta5d6ff*/*Ta5d6ff"Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4} Tff7b72else Tff7b72if Tb4b4b4(Tff7b72!Te6edf3mimeTypesTb4b4b4.Te6edf3containsTb4b4b4(Te6edf3trimmedTb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3mimeTypesTb4b4b4.Te6edf3addTb4b4b4(Te6edf3trimmedTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3mimeTypesTb4b4b4.Te6edf3isEmptyTb4b4b4(Tb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3chooserIntentTb4b4b4.Te6edf3putExtraTb4b4b4(
Te6edf3IntentTb4b4b4.Te6edf3EXTRA_MIME_TYPESTb4b4b4,
Te6edf3mimeTypesTb4b4b4.Te6edf3toArrayTb4b4b4(Tff7b72new Te6edf3StringTff7b72[T79c0ff0Tff7b72]Tb4b4b4)
Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72else Tb4b4b4{
Te6edf3chooserIntentTb4b4b4.Te6edf3setTypeTb4b4b4(Ta5d6ff"Ta5d6ff*/*Ta5d6ff"Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tffa657boolean Te6edf3allowMultiple Tff7b72= Te6edf3fileChooserParams Tff7b72!Tff7b72= Tff7b72null Tff7b72&Tff7b72& Te6edf3fileChooserParamsTb4b4b4.Te6edf3getModeTb4b4b4(Tb4b4b4)
Tff7b72=Tff7b72= Te6edf3WebChromeClientTb4b4b4.Te6edf3FileChooserParamsTb4b4b4.Te6edf3MODE_OPEN_MULTIPLETb4b4b4;
Te6edf3chooserIntentTb4b4b4.Te6edf3putExtraTb4b4b4(Te6edf3IntentTb4b4b4.Te6edf3EXTRA_ALLOW_MULTIPLETb4b4b4, Te6edf3allowMultipleTb4b4b4)Tb4b4b4;
Tff7b72try Tb4b4b4{
Te6edf3filePickerLauncherTb4b4b4.Te6edf3launchTb4b4b4(Te6edf3chooserIntentTb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3ActivityNotFoundException Te6edf3eTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3MainActivityTb4b4b4.Te6edf3thisTb4b4b4.Te6edf3filePathCallback Tff7b72!Tff7b72= Tff7b72nullTb4b4b4) Tb4b4b4{
Te6edf3MainActivityTb4b4b4.Te6edf3thisTb4b4b4.Te6edf3filePathCallbackTb4b4b4.Te6edf3onReceiveValueTb4b4b4(Tff7b72nullTb4b4b4)Tb4b4b4;
Te6edf3MainActivityTb4b4b4.Te6edf3thisTb4b4b4.Te6edf3filePathCallback Tff7b72= Tff7b72nullTb4b4b4;
Tb4b4b4}
Te6edf3ToastTb4b4b4.Te6edf3makeTextTb4b4b4(Te6edf3MainActivityTb4b4b4.Te6edf3thisTb4b4b4, Ta5d6ff"Ta5d6ffNo file picker availableTa5d6ff"Tb4b4b4, Te6edf3ToastTb4b4b4.Te6edf3LENGTH_SHORTTb4b4b4)Tb4b4b4.Te6edf3showTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72return Tff7b72falseTb4b4b4;
Tb4b4b4}
Tff7b72return Tff7b72trueTb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3handleIncomingIntentTb4b4b4(Te6edf3getIntentTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4;
Te6edf3consumeCallIntentForPendingTb4b4b4(Te6edf3getIntentTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4;
Te6edf3getOnBackPressedDispatcherTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3addCallbackTb4b4b4(
Tff7b72thisTb4b4b4,
Tff7b72new Te6edf3OnBackPressedCallbackTb4b4b4(Tff7b72trueTb4b4b4) Tb4b4b4{
Tf0883e@Override
Tff7b72public Tffa657void Td2a8ffhandleOnBackPressedTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3webView Tff7b72!Tff7b72= Tff7b72null Tff7b72&Tff7b72& Te6edf3webViewTb4b4b4.Te6edf3canGoBackTb4b4b4(Tb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3webViewTb4b4b4.Te6edf3goBackTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72else Tb4b4b4{
Te6edf3setEnabledTb4b4b4(Tff7b72falseTb4b4b4)Tb4b4b4;
Te6edf3MainActivityTb4b4b4.Te6edf3thisTb4b4b4.Te6edf3getOnBackPressedDispatcherTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3onBackPressedTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3setEnabledTb4b4b4(Tff7b72trueTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tb4b4b4}
Tb4b4b4)Tb4b4b4;
Tff7b72try Tb4b4b4{
Te6edf3AndroidStorageManagerTb4b4b4.Te6edf3runPendingMigrationTb4b4b4(Tff7b72thisTb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3IOException Te6edf3migrationErrorTb4b4b4) Tb4b4b4{
Te6edf3showStartupErrorTb4b4b4(
Ta5d6ff"Ta5d6ffMeshChatX could not copy data to file-manager storage:Ta5d6ff"Tb4b4b4,
Te6edf3migrationErrorTb4b4b4.Te6edf3getMessageTb4b4b4(Tb4b4b4)
Tb4b4b4)Tb4b4b4;
Tff7b72returnTb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3isRemoteBackendModeTb4b4b4(Tb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3webViewTb4b4b4.Te6edf3loadUrlTb4b4b4(Te6edf3resolveBackendUrlTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4;
Te6edf3scheduleConnectionRetryTb4b4b4(Ta5d6ff"Ta5d6ffConnecting to remote backend…Ta5d6ff"Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72else Tb4b4b4{
Te6edf3startMeshChatServerTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3scheduleConnectionRetryTb4b4b4(Ta5d6ff"Ta5d6ffConnecting to local server...Ta5d6ff"Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tf0883e@Override
Tff7b72protected Tffa657void Td2a8ffonStartTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72superTb4b4b4.Te6edf3onStartTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3stopServiceTb4b4b4(Tff7b72new Te6edf3IntentTb4b4b4(Tff7b72thisTb4b4b4, Te6edf3MeshChatForegroundServiceTb4b4b4.Te6edf3classTb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tf0883e@Override
Tff7b72protected Tffa657void Td2a8ffonStopTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3isClearClipboardOnBackgroundEnabledTb4b4b4(Tb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3clearPrimaryClipboardTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3isFinishingTb4b4b4(Tb4b4b4) Tff7b72&Tff7b72& Tff7b72!Te6edf3backendFailedTb4b4b4) Tb4b4b4{
Te6edf3ContextCompatTb4b4b4.Te6edf3startForegroundServiceTb4b4b4(Tff7b72thisTb4b4b4, Tff7b72new Te6edf3IntentTb4b4b4(Tff7b72thisTb4b4b4, Te6edf3MeshChatForegroundServiceTb4b4b4.Te6edf3classTb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72superTb4b4b4.Te6edf3onStopTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tf0883e@Override
Tff7b72protected Tffa657void Td2a8ffonNewIntentTb4b4b4(Te6edf3Intent Te6edf3intentTb4b4b4) Tb4b4b4{
Tff7b72superTb4b4b4.Te6edf3onNewIntentTb4b4b4(Te6edf3intentTb4b4b4)Tb4b4b4;
Te6edf3setIntentTb4b4b4(Te6edf3intentTb4b4b4)Tb4b4b4;
Te6edf3handleIncomingIntentTb4b4b4(Te6edf3intentTb4b4b4)Tb4b4b4;
Te6edf3consumeCallIntentForPendingTb4b4b4(Te6edf3intentTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3startupPageLoadedTb4b4b4) Tb4b4b4{
Te6edf3dispatchPendingIntentUriTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3dispatchCallNotificationActionTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tff7b72private Tffa657void Td2a8ffrequestRuntimePermissionsIfNeededTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3ListTff7b72<Te6edf3StringTff7b72> Te6edf3missingPermissions Tff7b72= Tff7b72new Te6edf3ArrayListTff7b72<Tff7b72>Tb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3addIfMissingTb4b4b4(Te6edf3missingPermissionsTb4b4b4, Te6edf3ManifestTb4b4b4.Te6edf3permissionTb4b4b4.Te6edf3RECORD_AUDIOTb4b4b4)Tb4b4b4;
Te6edf3addIfMissingTb4b4b4(Te6edf3missingPermissionsTb4b4b4, Te6edf3ManifestTb4b4b4.Te6edf3permissionTb4b4b4.Te6edf3CAMERATb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3BuildTb4b4b4.Te6edf3VERSIONTb4b4b4.Te6edf3SDK_INT Tff7b72>Tff7b72= Te6edf3BuildTb4b4b4.Te6edf3VERSION_CODESTb4b4b4.Te6edf3STb4b4b4) Tb4b4b4{
Te6edf3addIfMissingTb4b4b4(Te6edf3missingPermissionsTb4b4b4, Te6edf3ManifestTb4b4b4.Te6edf3permissionTb4b4b4.Te6edf3BLUETOOTH_CONNECTTb4b4b4)Tb4b4b4;
Te6edf3addIfMissingTb4b4b4(Te6edf3missingPermissionsTb4b4b4, Te6edf3ManifestTb4b4b4.Te6edf3permissionTb4b4b4.Te6edf3BLUETOOTH_SCANTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3BuildTb4b4b4.Te6edf3VERSIONTb4b4b4.Te6edf3SDK_INT Tff7b72>Tff7b72= Te6edf3BuildTb4b4b4.Te6edf3VERSION_CODESTb4b4b4.Te6edf3TIRAMISUTb4b4b4) Tb4b4b4{
Te6edf3addIfMissingTb4b4b4(Te6edf3missingPermissionsTb4b4b4, Te6edf3ManifestTb4b4b4.Te6edf3permissionTb4b4b4.Te6edf3POST_NOTIFICATIONSTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3missingPermissionsTb4b4b4.Te6edf3isEmptyTb4b4b4(Tb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3ActivityCompatTb4b4b4.Te6edf3requestPermissionsTb4b4b4(
Tff7b72thisTb4b4b4,
Te6edf3missingPermissionsTb4b4b4.Te6edf3toArrayTb4b4b4(Tff7b72new Te6edf3StringTff7b72[T79c0ff0Tff7b72]Tb4b4b4)Tb4b4b4,
Te6edf3RUNTIME_PERMISSIONS_REQUEST_CODE
Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72else Tb4b4b4{
Te6edf3requestBatteryOptimizationExemptionIfNeededTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tff7b72private Tffa657void Td2a8ffrequestBatteryOptimizationExemptionIfNeededTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3BuildTb4b4b4.Te6edf3VERSIONTb4b4b4.Te6edf3SDK_INT Tff7b72< Te6edf3BuildTb4b4b4.Te6edf3VERSION_CODESTb4b4b4.Te6edf3MTb4b4b4) Tb4b4b4{
Tff7b72returnTb4b4b4;
Tb4b4b4}
Te6edf3PowerManager Te6edf3powerManager Tff7b72= Tb4b4b4(Te6edf3PowerManagerTb4b4b4) Te6edf3getSystemServiceTb4b4b4(Te6edf3POWER_SERVICETb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3powerManager Tff7b72!Tff7b72= Tff7b72null Tff7b72&Tff7b72& Te6edf3powerManagerTb4b4b4.Te6edf3isIgnoringBatteryOptimizationsTb4b4b4(Te6edf3getPackageNameTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72returnTb4b4b4;
Tb4b4b4}
Tffa657boolean Te6edf3requestedBefore Tff7b72= Te6edf3getSharedPreferencesTb4b4b4(Te6edf3PREFS_NAMETb4b4b4, Te6edf3MODE_PRIVATETb4b4b4)Tb4b4b4.Te6edf3getBooleanTb4b4b4(Te6edf3PREF_BATTERY_OPT_REQUESTEDTb4b4b4, Tff7b72falseTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3requestedBeforeTb4b4b4) Tb4b4b4{
Tff7b72returnTb4b4b4;
Tb4b4b4}
Te6edf3getSharedPreferencesTb4b4b4(Te6edf3PREFS_NAMETb4b4b4, Te6edf3MODE_PRIVATETb4b4b4)Tb4b4b4.Te6edf3editTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3putBooleanTb4b4b4(Te6edf3PREF_BATTERY_OPT_REQUESTEDTb4b4b4, Tff7b72trueTb4b4b4)Tb4b4b4.Te6edf3applyTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3Intent Te6edf3intent Tff7b72= Tff7b72new Te6edf3IntentTb4b4b4(Te6edf3SettingsTb4b4b4.Te6edf3ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONSTb4b4b4)Tb4b4b4;
Te6edf3intentTb4b4b4.Te6edf3setDataTb4b4b4(Te6edf3UriTb4b4b4.Te6edf3parseTb4b4b4(Ta5d6ff"Ta5d6ffpackage:Ta5d6ff" Tff7b72+ Te6edf3getPackageNameTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tff7b72try Tb4b4b4{
Te6edf3startActivityTb4b4b4(Te6edf3intentTb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3ActivityNotFoundException Te6edf3eTb4b4b4) Tb4b4b4{
Tff7b72try Tb4b4b4{
Te6edf3startActivityTb4b4b4(Tff7b72new Te6edf3IntentTb4b4b4(Te6edf3SettingsTb4b4b4.Te6edf3ACTION_IGNORE_BATTERY_OPTIMIZATION_SETTINGSTb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3ActivityNotFoundException Te6edf3ignoredTb4b4b4) Tb4b4b4{
Te6edf3ToastTb4b4b4.Te6edf3makeTextTb4b4b4(Tff7b72thisTb4b4b4, Ta5d6ff"Ta5d6ffOpen battery settings and allow unrestricted background usage for MeshChatXTa5d6ff"Tb4b4b4, Te6edf3ToastTb4b4b4.Te6edf3LENGTH_LONGTb4b4b4)Tb4b4b4.Te6edf3showTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tb4b4b4}
Tffa657void Td2a8ffaddIfMissingTb4b4b4(Te6edf3ListTff7b72<Te6edf3StringTff7b72> Te6edf3missingPermissionsTb4b4b4, Te6edf3String Te6edf3permissionTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3ContextCompatTb4b4b4.Te6edf3checkSelfPermissionTb4b4b4(Tff7b72thisTb4b4b4, Te6edf3permissionTb4b4b4) Tff7b72!Tff7b72= Te6edf3PackageManagerTb4b4b4.Te6edf3PERMISSION_GRANTEDTb4b4b4) Tb4b4b4{
Te6edf3missingPermissionsTb4b4b4.Te6edf3addTb4b4b4(Te6edf3permissionTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tffa657void Td2a8ffopenAppPermissionSettingsTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72try Tb4b4b4{
Te6edf3startActivityTb4b4b4(
Tff7b72new Te6edf3IntentTb4b4b4(
Te6edf3SettingsTb4b4b4.Te6edf3ACTION_APPLICATION_DETAILS_SETTINGSTb4b4b4,
Te6edf3UriTb4b4b4.Te6edf3parseTb4b4b4(Ta5d6ff"Ta5d6ffpackage:Ta5d6ff" Tff7b72+ Te6edf3getPackageNameTb4b4b4(Tb4b4b4)Tb4b4b4)
Tb4b4b4)
Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3ActivityNotFoundException Te6edf3ignoredTb4b4b4) Tb4b4b4{
Te6edf3ToastTb4b4b4.Te6edf3makeTextTb4b4b4(Tff7b72thisTb4b4b4, Ta5d6ff"Ta5d6ffApp settings unavailableTa5d6ff"Tb4b4b4, Te6edf3ToastTb4b4b4.Te6edf3LENGTH_SHORTTb4b4b4)Tb4b4b4.Te6edf3showTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tff7b72private Tff7b72static Tff7b72final Te6edf3String Te6edf3PREF_BT_PERM_PROMPTED_PREFIX Tff7b72= Ta5d6ff"Ta5d6ffbt_perm_prompted_Ta5d6ff"Tb4b4b4;
Tffa657boolean Td2a8ffwasBluetoothPermissionDeniedPermanentlyTb4b4b4(Te6edf3String Te6edf3permissionTb4b4b4) Tb4b4b4{
T8b949e// After the first prompt, if rationale is false and still denied, treat as permanent.
Tffa657boolean Te6edf3prompted Tff7b72=
Te6edf3getSharedPreferencesTb4b4b4(Te6edf3PREFS_NAMETb4b4b4, Te6edf3MODE_PRIVATETb4b4b4)
Tb4b4b4.Te6edf3getBooleanTb4b4b4(Te6edf3PREF_BT_PERM_PROMPTED_PREFIX Tff7b72+ Te6edf3permissionTb4b4b4, Tff7b72falseTb4b4b4)Tb4b4b4;
Tff7b72return Te6edf3prompted
Tff7b72&Tff7b72& Te6edf3ContextCompatTb4b4b4.Te6edf3checkSelfPermissionTb4b4b4(Tff7b72thisTb4b4b4, Te6edf3permissionTb4b4b4)
Tff7b72!Tff7b72= Te6edf3PackageManagerTb4b4b4.Te6edf3PERMISSION_GRANTED
Tff7b72&Tff7b72& Tff7b72!Te6edf3ActivityCompatTb4b4b4.Te6edf3shouldShowRequestPermissionRationaleTb4b4b4(Tff7b72thisTb4b4b4, Te6edf3permissionTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tffa657void Td2a8ffmarkBluetoothPermissionPromptedTb4b4b4(Te6edf3String Te6edf3permissionTb4b4b4) Tb4b4b4{
Te6edf3getSharedPreferencesTb4b4b4(Te6edf3PREFS_NAMETb4b4b4, Te6edf3MODE_PRIVATETb4b4b4)
Tb4b4b4.Te6edf3editTb4b4b4(Tb4b4b4)
Tb4b4b4.Te6edf3putBooleanTb4b4b4(Te6edf3PREF_BT_PERM_PROMPTED_PREFIX Tff7b72+ Te6edf3permissionTb4b4b4, Tff7b72trueTb4b4b4)
Tb4b4b4.Te6edf3applyTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72private Te6edf3StringTff7b72[Tff7b72] Td2a8ffgrantableWebPermissionResourcesTb4b4b4(Te6edf3PermissionRequest Te6edf3requestTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3request Tff7b72=Tff7b72= Tff7b72nullTb4b4b4) Tb4b4b4{
Tff7b72return Tff7b72new Te6edf3StringTff7b72[T79c0ff0Tff7b72]Tb4b4b4;
Tb4b4b4}
Te6edf3ListTff7b72<Te6edf3StringTff7b72> Te6edf3allowed Tff7b72= Tff7b72new Te6edf3ArrayListTff7b72<Tff7b72>Tb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72for Tb4b4b4(Te6edf3String Te6edf3resource Tb4b4b4: Te6edf3requestTb4b4b4.Te6edf3getResourcesTb4b4b4(Tb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3PermissionRequestTb4b4b4.Te6edf3RESOURCE_AUDIO_CAPTURETb4b4b4.Te6edf3equalsTb4b4b4(Te6edf3resourceTb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3ContextCompatTb4b4b4.Te6edf3checkSelfPermissionTb4b4b4(Tff7b72thisTb4b4b4, Te6edf3ManifestTb4b4b4.Te6edf3permissionTb4b4b4.Te6edf3RECORD_AUDIOTb4b4b4)
Tff7b72=Tff7b72= Te6edf3PackageManagerTb4b4b4.Te6edf3PERMISSION_GRANTEDTb4b4b4) Tb4b4b4{
Te6edf3allowedTb4b4b4.Te6edf3addTb4b4b4(Te6edf3resourceTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4} Tff7b72else Tff7b72if Tb4b4b4(Te6edf3PermissionRequestTb4b4b4.Te6edf3RESOURCE_VIDEO_CAPTURETb4b4b4.Te6edf3equalsTb4b4b4(Te6edf3resourceTb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3ContextCompatTb4b4b4.Te6edf3checkSelfPermissionTb4b4b4(Tff7b72thisTb4b4b4, Te6edf3ManifestTb4b4b4.Te6edf3permissionTb4b4b4.Te6edf3CAMERATb4b4b4)
Tff7b72=Tff7b72= Te6edf3PackageManagerTb4b4b4.Te6edf3PERMISSION_GRANTEDTb4b4b4) Tb4b4b4{
Te6edf3allowedTb4b4b4.Te6edf3addTb4b4b4(Te6edf3resourceTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4} Tff7b72else Tb4b4b4{
Te6edf3allowedTb4b4b4.Te6edf3addTb4b4b4(Te6edf3resourceTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tff7b72return Te6edf3allowedTb4b4b4.Te6edf3toArrayTb4b4b4(Tff7b72new Te6edf3StringTff7b72[T79c0ff0Tff7b72]Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72private Tffa657void Td2a8ffcompletePendingWebPermissionRequestFromRuntimeStateTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3pendingWebPermissionRequest Tff7b72=Tff7b72= Tff7b72nullTb4b4b4) Tb4b4b4{
Tff7b72returnTb4b4b4;
Tb4b4b4}
Te6edf3StringTff7b72[Tff7b72] Te6edf3allowed Tff7b72= Te6edf3grantableWebPermissionResourcesTb4b4b4(Te6edf3pendingWebPermissionRequestTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3allowedTb4b4b4.Te6edf3length Tff7b72> T79c0ff0Tb4b4b4) Tb4b4b4{
Te6edf3pendingWebPermissionRequestTb4b4b4.Te6edf3grantTb4b4b4(Te6edf3allowedTb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72else Tb4b4b4{
Te6edf3pendingWebPermissionRequestTb4b4b4.Te6edf3denyTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Te6edf3pendingWebPermissionRequest Tff7b72= Tff7b72nullTb4b4b4;
Tb4b4b4}
Tf0883e@Override
Tff7b72public Tffa657void Td2a8ffonRequestPermissionsResultTb4b4b4(Tffa657int Te6edf3requestCodeTb4b4b4, Te6edf3StringTff7b72[Tff7b72] Te6edf3permissionsTb4b4b4, Tffa657intTff7b72[Tff7b72] Te6edf3grantResultsTb4b4b4) Tb4b4b4{
Tff7b72superTb4b4b4.Te6edf3onRequestPermissionsResultTb4b4b4(Te6edf3requestCodeTb4b4b4, Te6edf3permissionsTb4b4b4, Te6edf3grantResultsTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3requestCode Tff7b72=Tff7b72= Te6edf3WEBVIEW_GEOLOCATION_PERMISSION_REQUEST_CODETb4b4b4) Tb4b4b4{
Tffa657boolean Te6edf3granted Tff7b72= Tff7b72falseTb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3permissions Tff7b72!Tff7b72= Tff7b72null Tff7b72&Tff7b72& Te6edf3grantResults Tff7b72!Tff7b72= Tff7b72nullTb4b4b4) Tb4b4b4{
Tff7b72for Tb4b4b4(Tffa657int Te6edf3i Tff7b72= T79c0ff0Tb4b4b4; Te6edf3i Tff7b72< Te6edf3permissionsTb4b4b4.Te6edf3length Tff7b72&Tff7b72& Te6edf3i Tff7b72< Te6edf3grantResultsTb4b4b4.Te6edf3lengthTb4b4b4; Te6edf3iTff7b72+Tff7b72+Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3grantResultsTff7b72[Te6edf3iTff7b72] Tff7b72!Tff7b72= Te6edf3PackageManagerTb4b4b4.Te6edf3PERMISSION_GRANTEDTb4b4b4) Tb4b4b4{
Tff7b72continueTb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3ManifestTb4b4b4.Te6edf3permissionTb4b4b4.Te6edf3ACCESS_FINE_LOCATIONTb4b4b4.Te6edf3equalsTb4b4b4(Te6edf3permissionsTff7b72[Te6edf3iTff7b72]Tb4b4b4)
Tff7b72|Tff7b72| Te6edf3ManifestTb4b4b4.Te6edf3permissionTb4b4b4.Te6edf3ACCESS_COARSE_LOCATIONTb4b4b4.Te6edf3equalsTb4b4b4(Te6edf3permissionsTff7b72[Te6edf3iTff7b72]Tb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3granted Tff7b72= Tff7b72trueTb4b4b4;
Tff7b72breakTb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3pendingGeolocationPermissionCallback Tff7b72!Tff7b72= Tff7b72nullTb4b4b4) Tb4b4b4{
Te6edf3pendingGeolocationPermissionCallbackTb4b4b4.Te6edf3invokeTb4b4b4(Te6edf3pendingGeolocationOriginTb4b4b4, Te6edf3grantedTb4b4b4, Tff7b72falseTb4b4b4)Tb4b4b4;
Te6edf3pendingGeolocationPermissionCallback Tff7b72= Tff7b72nullTb4b4b4;
Te6edf3pendingGeolocationOrigin Tff7b72= Tff7b72nullTb4b4b4;
Tb4b4b4}
Tff7b72returnTb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3requestCode Tff7b72=Tff7b72= Te6edf3WEB_MEDIA_PERMISSION_REQUEST_CODETb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3pendingWebPermissionRequest Tff7b72=Tff7b72= Tff7b72nullTb4b4b4) Tb4b4b4{
Tff7b72returnTb4b4b4;
Tb4b4b4}
Tffa657boolean Te6edf3granted Tff7b72= Tff7b72trueTb4b4b4;
Tff7b72for Tb4b4b4(Tffa657int Te6edf3result Tb4b4b4: Te6edf3grantResultsTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3result Tff7b72!Tff7b72= Te6edf3PackageManagerTb4b4b4.Te6edf3PERMISSION_GRANTEDTb4b4b4) Tb4b4b4{
Te6edf3granted Tff7b72= Tff7b72falseTb4b4b4;
Tff7b72breakTb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3grantedTb4b4b4) Tb4b4b4{
Te6edf3StringTff7b72[Tff7b72] Te6edf3allowed Tff7b72= Te6edf3grantableWebPermissionResourcesTb4b4b4(Te6edf3pendingWebPermissionRequestTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3allowedTb4b4b4.Te6edf3length Tff7b72> T79c0ff0Tb4b4b4) Tb4b4b4{
Te6edf3pendingWebPermissionRequestTb4b4b4.Te6edf3grantTb4b4b4(Te6edf3allowedTb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72else Tb4b4b4{
Te6edf3pendingWebPermissionRequestTb4b4b4.Te6edf3denyTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4} Tff7b72else Tb4b4b4{
Te6edf3pendingWebPermissionRequestTb4b4b4.Te6edf3denyTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Te6edf3pendingWebPermissionRequest Tff7b72= Tff7b72nullTb4b4b4;
Tff7b72returnTb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3requestCode Tff7b72=Tff7b72= Te6edf3RNODE_BLUETOOTH_PERMISSION_REQUEST_CODETb4b4b4) Tb4b4b4{
Tffa657boolean Te6edf3granted Tff7b72= Tff7b72trueTb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3grantResults Tff7b72=Tff7b72= Tff7b72null Tff7b72|Tff7b72| Te6edf3grantResultsTb4b4b4.Te6edf3length Tff7b72=Tff7b72= T79c0ff0Tb4b4b4) Tb4b4b4{
Te6edf3granted Tff7b72= Tff7b72falseTb4b4b4;
Tb4b4b4} Tff7b72else Tb4b4b4{
Tff7b72for Tb4b4b4(Tffa657int Te6edf3result Tb4b4b4: Te6edf3grantResultsTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3result Tff7b72!Tff7b72= Te6edf3PackageManagerTb4b4b4.Te6edf3PERMISSION_GRANTEDTb4b4b4) Tb4b4b4{
Te6edf3granted Tff7b72= Tff7b72falseTb4b4b4;
Tff7b72breakTb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tb4b4b4}
Tff7b72final Tffa657boolean Te6edf3ok Tff7b72= Te6edf3grantedTb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3webView Tff7b72!Tff7b72= Tff7b72nullTb4b4b4) Tb4b4b4{
Te6edf3webViewTb4b4b4.Te6edf3evaluateJavascriptTb4b4b4(
Ta5d6ff"Ta5d6ffwindow.dispatchEvent(new CustomEvent('meshchatx-android-permission',Ta5d6ff"
Tff7b72+ Ta5d6ff"Ta5d6ff{detail:{group:'bluetooth',granted:Ta5d6ff"
Tff7b72+ Te6edf3ok
Tff7b72+ Ta5d6ff"Ta5d6ff}}));Ta5d6ff"Tb4b4b4,
Tff7b72null
Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72returnTb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3requestCode Tff7b72!Tff7b72= Te6edf3RUNTIME_PERMISSIONS_REQUEST_CODETb4b4b4) Tb4b4b4{
Tff7b72returnTb4b4b4;
Tb4b4b4}
Te6edf3requestBatteryOptimizationExemptionIfNeededTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3completePendingWebPermissionRequestFromRuntimeStateTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72private Tffa657void Td2a8ffstartMeshChatServerTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72new Te6edf3ThreadTb4b4b4(Tb4b4b4(Tb4b4b4) Tff7b72-Tff7b72> Tb4b4b4{
Tff7b72try Tb4b4b4{
Te6edf3Python Te6edf3py Tff7b72= Te6edf3PythonTb4b4b4.Te6edf3getInstanceTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3String Te6edf3appFilesDir Tff7b72= Te6edf3AndroidStorageManagerTb4b4b4.Te6edf3resolveActiveBaseDirTb4b4b4(Te6edf3MainActivityTb4b4b4.Te6edf3thisTb4b4b4)Tb4b4b4.Te6edf3getAbsolutePathTb4b4b4(Tb4b4b4)Tb4b4b4;
T8b949e// Pass Activity so usb4a / org.able.BLE can open RNode USB and BLE.
Te6edf3pyTb4b4b4.Te6edf3getModuleTb4b4b4(Ta5d6ff"Ta5d6ffmeshchat_wrapperTa5d6ff"Tb4b4b4)Tb4b4b4.Te6edf3callAttrTb4b4b4(
Ta5d6ff"Ta5d6ffstart_serverTa5d6ff"Tb4b4b4, Te6edf3SERVER_PORTTb4b4b4, Te6edf3appFilesDirTb4b4b4, Te6edf3MainActivityTb4b4b4.Te6edf3thisTb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3Exception Te6edf3eTb4b4b4) Tb4b4b4{
Tff7b72final Te6edf3String Te6edf3stack Tff7b72= Te6edf3toStackTraceTb4b4b4(Te6edf3eTb4b4b4)Tb4b4b4;
Te6edf3runOnUiThreadTb4b4b4(Tb4b4b4(Tb4b4b4) Tff7b72-Tff7b72> Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3startupPageLoadedTb4b4b4) Tb4b4b4{
Tff7b72returnTb4b4b4;
Tb4b4b4}
Te6edf3meshchatServerStartAttempts Tff7b72+Tff7b72= T79c0ff1Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3meshchatServerStartAttempts Tff7b72< Te6edf3MESHCHAT_SERVER_START_MAX_ATTEMPTSTb4b4b4) Tb4b4b4{
Te6edf3backendFailed Tff7b72= Tff7b72falseTb4b4b4;
Te6edf3showLoadingTb4b4b4(Ta5d6ff"Ta5d6ffHaving trouble starting. Trying again…Ta5d6ff"Tb4b4b4)Tb4b4b4;
Te6edf3mainHandlerTb4b4b4.Te6edf3postDelayedTb4b4b4(Tb4b4b4(Tb4b4b4) Tff7b72-Tff7b72> Te6edf3startMeshChatServerTb4b4b4(Tb4b4b4)Tb4b4b4, Te6edf3MESHCHAT_SERVER_RETRY_DELAY_MSTb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72else Tb4b4b4{
Te6edf3backendFailed Tff7b72= Tff7b72trueTb4b4b4;
Te6edf3showStartupErrorTb4b4b4(Ta5d6ff"Ta5d6ffMeshChatX backend failed:Ta5d6ff"Tb4b4b4, Te6edf3stackTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4)Tb4b4b4.Te6edf3startTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72private Tffa657boolean Td2a8ffisStartupRequestTb4b4b4(Te6edf3String Te6edf3urlTb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3RemoteBackendUrlTb4b4b4.Te6edf3matchesBackendTb4b4b4(Te6edf3urlTb4b4b4, Te6edf3resolveBackendUrlTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tf0883e@Nullable
Tff7b72private Te6edf3String Td2a8ffresolveStoredRemoteBackendUrlTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3SharedPreferences Te6edf3prefs Tff7b72= Te6edf3getSharedPreferencesTb4b4b4(Te6edf3SHELL_PREFSTb4b4b4, Te6edf3MODE_PRIVATETb4b4b4)Tb4b4b4;
Tff7b72return Te6edf3RemoteBackendUrlTb4b4b4.Te6edf3normalizeTb4b4b4(Te6edf3prefsTb4b4b4.Te6edf3getStringTb4b4b4(Te6edf3PREF_REMOTE_BACKEND_URLTb4b4b4, Tff7b72nullTb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72private Te6edf3String Td2a8ffresolveBackendUrlTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3RemoteBackendUrlTb4b4b4.Te6edf3resolveEffectiveUrlTb4b4b4(Te6edf3resolveStoredRemoteBackendUrlTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72private Tffa657boolean Td2a8ffisRemoteBackendModeTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3resolveStoredRemoteBackendUrlTb4b4b4(Tb4b4b4) Tff7b72!Tff7b72= Tff7b72nullTb4b4b4;
Tb4b4b4}
Tff7b72private Tffa657void Td2a8ffpersistRemoteBackendUrlTb4b4b4(Tf0883e@Nullable Te6edf3String Te6edf3normalizedOrNullTb4b4b4) Tb4b4b4{
Te6edf3SharedPreferencesTb4b4b4.Te6edf3Editor Te6edf3editor Tff7b72= Te6edf3getSharedPreferencesTb4b4b4(Te6edf3SHELL_PREFSTb4b4b4, Te6edf3MODE_PRIVATETb4b4b4)Tb4b4b4.Te6edf3editTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3normalizedOrNull Tff7b72=Tff7b72= Tff7b72null Tff7b72|Tff7b72| Te6edf3normalizedOrNullTb4b4b4.Te6edf3isEmptyTb4b4b4(Tb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3editorTb4b4b4.Te6edf3removeTb4b4b4(Te6edf3PREF_REMOTE_BACKEND_URLTb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72else Tb4b4b4{
Te6edf3editorTb4b4b4.Te6edf3putStringTb4b4b4(Te6edf3PREF_REMOTE_BACKEND_URLTb4b4b4, Te6edf3normalizedOrNullTb4b4b4)Tb4b4b4;
Tb4b4b4}
Te6edf3editorTb4b4b4.Te6edf3applyTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72private Tffa657void Td2a8ffrestartAppForBackendChangeTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3Intent Te6edf3intent Tff7b72= Te6edf3getPackageManagerTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3getLaunchIntentForPackageTb4b4b4(Te6edf3getPackageNameTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3intent Tff7b72!Tff7b72= Tff7b72nullTb4b4b4) Tb4b4b4{
Te6edf3intentTb4b4b4.Te6edf3addFlagsTb4b4b4(Te6edf3IntentTb4b4b4.Te6edf3FLAG_ACTIVITY_NEW_TASK Tff7b72| Te6edf3IntentTb4b4b4.Te6edf3FLAG_ACTIVITY_CLEAR_TASKTb4b4b4)Tb4b4b4;
Te6edf3startActivityTb4b4b4(Te6edf3intentTb4b4b4)Tb4b4b4;
Tb4b4b4}
Te6edf3finishAffinityTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3androidTb4b4b4.Te6edf3osTb4b4b4.Te6edf3ProcessTb4b4b4.Te6edf3killProcessTb4b4b4(Te6edf3androidTb4b4b4.Te6edf3osTb4b4b4.Te6edf3ProcessTb4b4b4.Te6edf3myPidTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72private Tffa657void Td2a8ffofferSwitchToLocalBackendTb4b4b4(Te6edf3String Te6edf3titleTb4b4b4, Tf0883e@Nullable Te6edf3String Te6edf3detailTb4b4b4) Tb4b4b4{
Tff7b72final Te6edf3String Te6edf3message Tff7b72= Te6edf3StartupErrorReportTb4b4b4.Te6edf3formatTb4b4b4(
Te6edf3titleTb4b4b4,
Te6edf3detailTb4b4b4,
Te6edf3StartupErrorReportTb4b4b4.Te6edf3collectTb4b4b4(Tff7b72thisTb4b4b4)
Tb4b4b4)Tb4b4b4;
Te6edf3runOnUiThreadTb4b4b4(Tb4b4b4(Tb4b4b4) Tff7b72-Tff7b72> Tb4b4b4{
Te6edf3mainHandlerTb4b4b4.Te6edf3removeCallbacksAndMessagesTb4b4b4(Tff7b72nullTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3webView Tff7b72!Tff7b72= Tff7b72nullTb4b4b4) Tb4b4b4{
Te6edf3webViewTb4b4b4.Te6edf3setVisibilityTb4b4b4(Te6edf3androidTb4b4b4.Te6edf3viewTb4b4b4.Te6edf3ViewTb4b4b4.Te6edf3INVISIBLETb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3loadingLogo Tff7b72!Tff7b72= Tff7b72nullTb4b4b4) Tb4b4b4{
Te6edf3loadingLogoTb4b4b4.Te6edf3setVisibilityTb4b4b4(Te6edf3androidTb4b4b4.Te6edf3viewTb4b4b4.Te6edf3ViewTb4b4b4.Te6edf3GONETb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3progressBar Tff7b72!Tff7b72= Tff7b72nullTb4b4b4) Tb4b4b4{
Te6edf3progressBarTb4b4b4.Te6edf3setVisibilityTb4b4b4(Te6edf3androidTb4b4b4.Te6edf3viewTb4b4b4.Te6edf3ViewTb4b4b4.Te6edf3GONETb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3loadingText Tff7b72!Tff7b72= Tff7b72nullTb4b4b4) Tb4b4b4{
Te6edf3loadingTextTb4b4b4.Te6edf3setVisibilityTb4b4b4(Te6edf3androidTb4b4b4.Te6edf3viewTb4b4b4.Te6edf3ViewTb4b4b4.Te6edf3GONETb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3errorText Tff7b72!Tff7b72= Tff7b72nullTb4b4b4) Tb4b4b4{
Te6edf3errorTextTb4b4b4.Te6edf3setTextTb4b4b4(Te6edf3messageTb4b4b4)Tb4b4b4;
Te6edf3errorTextTb4b4b4.Te6edf3setVisibilityTb4b4b4(Te6edf3androidTb4b4b4.Te6edf3viewTb4b4b4.Te6edf3ViewTb4b4b4.Te6edf3VISIBLETb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3isFinishingTb4b4b4(Tb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72returnTb4b4b4;
Tb4b4b4}
Tff7b72new Te6edf3AlertDialogTb4b4b4.Te6edf3BuilderTb4b4b4(Tff7b72thisTb4b4b4)
Tb4b4b4.Te6edf3setTitleTb4b4b4(Te6edf3RTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3remote_backend_unreachable_titleTb4b4b4)
Tb4b4b4.Te6edf3setMessageTb4b4b4(Te6edf3RTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3remote_backend_unreachable_messageTb4b4b4)
Tb4b4b4.Te6edf3setPositiveButtonTb4b4b4(Te6edf3RTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3remote_backend_use_localTb4b4b4, Tb4b4b4(Te6edf3dialogTb4b4b4, Te6edf3whichTb4b4b4) Tff7b72-Tff7b72> Tb4b4b4{
Te6edf3persistRemoteBackendUrlTb4b4b4(Tff7b72nullTb4b4b4)Tb4b4b4;
Te6edf3restartAppForBackendChangeTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)
Tb4b4b4.Te6edf3setNegativeButtonTb4b4b4(Te6edf3RTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3remote_backend_keep_tryingTb4b4b4, Tb4b4b4(Te6edf3dialogTb4b4b4, Te6edf3whichTb4b4b4) Tff7b72-Tff7b72> Tb4b4b4{
Te6edf3backendFailed Tff7b72= Tff7b72falseTb4b4b4;
Te6edf3startupPageLoaded Tff7b72= Tff7b72falseTb4b4b4;
Te6edf3startupRequestHadLoadError Tff7b72= Tff7b72falseTb4b4b4;
Te6edf3connectionAttempts Tff7b72= T79c0ff0Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3errorText Tff7b72!Tff7b72= Tff7b72nullTb4b4b4) Tb4b4b4{
Te6edf3errorTextTb4b4b4.Te6edf3setVisibilityTb4b4b4(Te6edf3androidTb4b4b4.Te6edf3viewTb4b4b4.Te6edf3ViewTb4b4b4.Te6edf3GONETb4b4b4)Tb4b4b4;
Tb4b4b4}
Te6edf3webViewTb4b4b4.Te6edf3loadUrlTb4b4b4(Te6edf3resolveBackendUrlTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4;
Te6edf3scheduleConnectionRetryTb4b4b4(Ta5d6ff"Ta5d6ffConnecting to remote backend…Ta5d6ff"Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)
Tb4b4b4.Te6edf3setCancelableTb4b4b4(Tff7b72trueTb4b4b4)
Tb4b4b4.Te6edf3showTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72private Tffa657void Td2a8ffhandleIncomingIntentTb4b4b4(Te6edf3Intent Te6edf3intentTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3intent Tff7b72=Tff7b72= Tff7b72null Tff7b72|Tff7b72| Tff7b72!Te6edf3IntentTb4b4b4.Te6edf3ACTION_VIEWTb4b4b4.Te6edf3equalsTb4b4b4(Te6edf3intentTb4b4b4.Te6edf3getActionTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72returnTb4b4b4;
Tb4b4b4}
Te6edf3Uri Te6edf3data Tff7b72= Te6edf3intentTb4b4b4.Te6edf3getDataTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3data Tff7b72=Tff7b72= Tff7b72null Tff7b72|Tff7b72| Te6edf3dataTb4b4b4.Te6edf3getSchemeTb4b4b4(Tb4b4b4) Tff7b72=Tff7b72= Tff7b72nullTb4b4b4) Tb4b4b4{
Tff7b72returnTb4b4b4;
Tb4b4b4}
Te6edf3String Te6edf3scheme Tff7b72= Te6edf3dataTb4b4b4.Te6edf3getSchemeTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3toLowerCaseTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Ta5d6ff"Ta5d6ffmeshchatxTa5d6ff"Tb4b4b4.Te6edf3equalsTb4b4b4(Te6edf3schemeTb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3dataTb4b4b4.Te6edf3getHostTb4b4b4(Tb4b4b4) Tff7b72=Tff7b72= Tff7b72nullTb4b4b4) Tb4b4b4{
Tff7b72returnTb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Tff7b72!Ta5d6ff"Ta5d6ffappTa5d6ff"Tb4b4b4.Te6edf3equalsIgnoreCaseTb4b4b4(Te6edf3dataTb4b4b4.Te6edf3getHostTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72returnTb4b4b4;
Tb4b4b4}
Te6edf3pendingIntentUri Tff7b72= Te6edf3dataTb4b4b4.Te6edf3toStringTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72returnTb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Tff7b72!Ta5d6ff"Ta5d6fflxmaTa5d6ff"Tb4b4b4.Te6edf3equalsTb4b4b4(Te6edf3schemeTb4b4b4) Tff7b72&Tff7b72& Tff7b72!Ta5d6ff"Ta5d6fflxmfTa5d6ff"Tb4b4b4.Te6edf3equalsTb4b4b4(Te6edf3schemeTb4b4b4) Tff7b72&Tff7b72& Tff7b72!Ta5d6ff"Ta5d6fflxmTa5d6ff"Tb4b4b4.Te6edf3equalsTb4b4b4(Te6edf3schemeTb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72returnTb4b4b4;
Tb4b4b4}
Te6edf3pendingIntentUri Tff7b72= Te6edf3dataTb4b4b4.Te6edf3toStringTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72private Tffa657void Td2a8ffconsumeCallIntentForPendingTb4b4b4(Te6edf3Intent Te6edf3intentTb4b4b4) Tb4b4b4{
T8b949e// Answer / decline / open are queued only by CallNotificationTrampolineActivity
T8b949e// (exported=false). Ignore CALL_ANSWER / CALL_DECLINE on this exported activity.
Te6edf3String Te6edf3trusted Tff7b72= Te6edf3AndroidNotificationBridgeTb4b4b4.Te6edf3takeTrustedCallActionTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3trusted Tff7b72!Tff7b72= Tff7b72nullTb4b4b4) Tb4b4b4{
Te6edf3pendingCallNotificationAction Tff7b72= Te6edf3trustedTb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tff7b72private Tffa657void Td2a8ffdispatchCallNotificationActionTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3webView Tff7b72=Tff7b72= Tff7b72nullTb4b4b4) Tb4b4b4{
Tff7b72returnTb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3pendingCallNotificationAction Tff7b72=Tff7b72= Tff7b72nullTb4b4b4) Tb4b4b4{
Tff7b72returnTb4b4b4;
Tb4b4b4}
Te6edf3String Te6edf3action Tff7b72= Te6edf3pendingCallNotificationActionTb4b4b4;
Te6edf3pendingCallNotificationAction Tff7b72= Tff7b72nullTb4b4b4;
Te6edf3String Te6edf3jsTb4b4b4;
Tff7b72if Tb4b4b4(Ta5d6ff"Ta5d6ffdeclineTa5d6ff"Tb4b4b4.Te6edf3equalsTb4b4b4(Te6edf3actionTb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3js Tff7b72=
Ta5d6ff"Ta5d6ff(function(){Ta5d6ff" Tff7b72+
Ta5d6ff"Ta5d6fffetch('/api/v1/telephone/hangup', { credentials: 'include' }).catch(function(){});})();Ta5d6ff"Tb4b4b4;
Tb4b4b4} Tff7b72else Tff7b72if Tb4b4b4(Ta5d6ff"Ta5d6ffanswerTa5d6ff"Tb4b4b4.Te6edf3equalsTb4b4b4(Te6edf3actionTb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3js Tff7b72=
Ta5d6ff"Ta5d6ff(function(){Ta5d6ff" Tff7b72+
Ta5d6ff"Ta5d6fffetch('/api/v1/telephone/answer', { credentials: 'include' })Ta5d6ff" Tff7b72+
Ta5d6ff"Ta5d6ff.then(function(){ try { window.location.hash = '#/call?tab=phone'; } catch (e) {}})Ta5d6ff" Tff7b72+
Ta5d6ff"Ta5d6ff.catch(function(){});})();Ta5d6ff"Tb4b4b4;
Tb4b4b4} Tff7b72else Tff7b72if Tb4b4b4(Ta5d6ff"Ta5d6ffopenTa5d6ff"Tb4b4b4.Te6edf3equalsTb4b4b4(Te6edf3actionTb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3js Tff7b72= Ta5d6ff"Ta5d6ff(function(){Ta5d6ff" Tff7b72+ Ta5d6ff"Ta5d6fftry { window.location.hash = '#/call?tab=phone'; } catch (e) {}Ta5d6ff" Tff7b72+ Ta5d6ff"Ta5d6ff})();Ta5d6ff"Tb4b4b4;
Tb4b4b4} Tff7b72else Tb4b4b4{
Tff7b72returnTb4b4b4;
Tb4b4b4}
Te6edf3webViewTb4b4b4.Te6edf3evaluateJavascriptTb4b4b4(Te6edf3jsTb4b4b4, Tff7b72nullTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72private Tffa657void Td2a8ffdispatchPendingIntentUriTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3webView Tff7b72=Tff7b72= Tff7b72null Tff7b72|Tff7b72| Te6edf3pendingIntentUri Tff7b72=Tff7b72= Tff7b72null Tff7b72|Tff7b72| Te6edf3pendingIntentUriTb4b4b4.Te6edf3isEmptyTb4b4b4(Tb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72returnTb4b4b4;
Tb4b4b4}
Te6edf3String Te6edf3uri Tff7b72= Te6edf3pendingIntentUriTb4b4b4;
Te6edf3pendingIntentUri Tff7b72= Tff7b72nullTb4b4b4;
Te6edf3String Te6edf3js Tff7b72=
Ta5d6ff"Ta5d6ffwindow.dispatchEvent(new CustomEvent('meshchatx-intent-uri',{detail:Ta5d6ff" Tff7b72+
Te6edf3JSONObjectTb4b4b4.Te6edf3quoteTb4b4b4(Te6edf3uriTb4b4b4) Tff7b72+
Ta5d6ff"Ta5d6ff}));Ta5d6ff"Tb4b4b4;
Te6edf3webViewTb4b4b4.Te6edf3evaluateJavascriptTb4b4b4(Te6edf3jsTb4b4b4, Tff7b72nullTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72private Tffa657void Td2a8ffscheduleConnectionRetryTb4b4b4(Te6edf3String Te6edf3messageTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3startupPageLoaded Tff7b72|Tff7b72| Te6edf3backendFailedTb4b4b4) Tb4b4b4{
Tff7b72returnTb4b4b4;
Tb4b4b4}
Te6edf3showLoadingTb4b4b4(Te6edf3messageTb4b4b4)Tb4b4b4;
Tffa657long Te6edf3retryDelayMs Tff7b72= Te6edf3MathTb4b4b4.Te6edf3minTb4b4b4(
Te6edf3CONNECTION_RETRY_MAX_DELAY_MSTb4b4b4,
Te6edf3CONNECTION_RETRY_INITIAL_DELAY_MS Tff7b72+ Tb4b4b4(Te6edf3connectionAttempts Tff7b72* T79c0ff250LTb4b4b4)
Tb4b4b4)Tb4b4b4;
Te6edf3mainHandlerTb4b4b4.Te6edf3postDelayedTb4b4b4(Tb4b4b4(Tb4b4b4) Tff7b72-Tff7b72> Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3startupPageLoaded Tff7b72|Tff7b72| Te6edf3backendFailedTb4b4b4) Tb4b4b4{
Tff7b72returnTb4b4b4;
Tb4b4b4}
Te6edf3connectionAttempts Tff7b72+Tff7b72= T79c0ff1Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3connectionAttempts Tff7b72> Te6edf3MAX_CONNECTION_ATTEMPTSTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3isRemoteBackendModeTb4b4b4(Tb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3backendFailed Tff7b72= Tff7b72trueTb4b4b4;
Te6edf3offerSwitchToLocalBackendTb4b4b4(
Ta5d6ff"Ta5d6ffFailed to connect to remote MeshChatX backend after waiting for startup.Ta5d6ff"Tb4b4b4,
Te6edf3resolveBackendUrlTb4b4b4(Tb4b4b4)
Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72else Tb4b4b4{
Te6edf3showStartupErrorTb4b4b4(
Ta5d6ff"Ta5d6ffFailed to connect to local MeshChatX server after waiting for startup.Ta5d6ff"Tb4b4b4,
Tff7b72null
Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72returnTb4b4b4;
Tb4b4b4}
Te6edf3webViewTb4b4b4.Te6edf3loadUrlTb4b4b4(Te6edf3resolveBackendUrlTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4;
Te6edf3scheduleConnectionRetryTb4b4b4(
Te6edf3isRemoteBackendModeTb4b4b4(Tb4b4b4) Tff7b72? Ta5d6ff"Ta5d6ffStill connecting to remote backend…Ta5d6ff" Tb4b4b4: Ta5d6ff"Ta5d6ffStill starting…Ta5d6ff"
Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4, Te6edf3retryDelayMsTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72private Te6edf3String Td2a8ffresolvePreferredUiThemeTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3SharedPreferences Te6edf3prefs Tff7b72= Te6edf3getSharedPreferencesTb4b4b4(Te6edf3SHELL_PREFSTb4b4b4, Te6edf3MODE_PRIVATETb4b4b4)Tb4b4b4;
Te6edf3String Te6edf3stored Tff7b72= Te6edf3prefsTb4b4b4.Te6edf3getStringTb4b4b4(Te6edf3PREF_UI_THEMETb4b4b4, Tff7b72nullTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3THEME_LIGHTTb4b4b4.Te6edf3equalsTb4b4b4(Te6edf3storedTb4b4b4) Tff7b72|Tff7b72| Te6edf3THEME_DARKTb4b4b4.Te6edf3equalsTb4b4b4(Te6edf3storedTb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3storedTb4b4b4;
Tb4b4b4}
Tff7b72return Te6edf3THEME_DARKTb4b4b4;
Tb4b4b4}
Tff7b72private Tff7b72static Tffa657boolean Td2a8ffisDarkUiThemeTb4b4b4(Te6edf3String Te6edf3themeTb4b4b4) Tb4b4b4{
Tff7b72return Tff7b72!Te6edf3THEME_LIGHTTb4b4b4.Te6edf3equalsTb4b4b4(Te6edf3themeTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72private Tffa657void Td2a8ffpersistPreferredUiThemeTb4b4b4(Te6edf3String Te6edf3themeTb4b4b4) Tb4b4b4{
Te6edf3String Te6edf3normalized Tff7b72= Te6edf3isDarkUiThemeTb4b4b4(Te6edf3themeTb4b4b4) Tff7b72? Te6edf3THEME_DARK Tb4b4b4: Te6edf3THEME_LIGHTTb4b4b4;
Te6edf3getSharedPreferencesTb4b4b4(Te6edf3SHELL_PREFSTb4b4b4, Te6edf3MODE_PRIVATETb4b4b4)
Tb4b4b4.Te6edf3editTb4b4b4(Tb4b4b4)
Tb4b4b4.Te6edf3putStringTb4b4b4(Te6edf3PREF_UI_THEMETb4b4b4, Te6edf3normalizedTb4b4b4)
Tb4b4b4.Te6edf3applyTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72private Tffa657void Td2a8ffapplyShellCanvasThemeTb4b4b4(Te6edf3String Te6edf3themeTb4b4b4) Tb4b4b4{
Tffa657boolean Te6edf3dark Tff7b72= Te6edf3isDarkUiThemeTb4b4b4(Te6edf3themeTb4b4b4)Tb4b4b4;
Tffa657int Te6edf3canvasColor Tff7b72= Te6edf3ContextCompatTb4b4b4.Te6edf3getColorTb4b4b4(
Tff7b72thisTb4b4b4,
Te6edf3dark Tff7b72? Te6edf3RTb4b4b4.Te6edf3colorTb4b4b4.Te6edf3meshchat_canvas_dark Tb4b4b4: Te6edf3RTb4b4b4.Te6edf3colorTb4b4b4.Te6edf3meshchat_canvas_light
Tb4b4b4)Tb4b4b4;
Te6edf3getWindowTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3getDecorViewTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3setBackgroundColorTb4b4b4(Te6edf3canvasColorTb4b4b4)Tb4b4b4;
Te6edf3androidTb4b4b4.Te6edf3viewTb4b4b4.Te6edf3View Te6edf3content Tff7b72= Te6edf3findViewByIdTb4b4b4(Te6edf3androidTb4b4b4.Te6edf3RTb4b4b4.Te6edf3idTb4b4b4.Te6edf3contentTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3content Tff7b72!Tff7b72= Tff7b72nullTb4b4b4) Tb4b4b4{
Te6edf3contentTb4b4b4.Te6edf3setBackgroundColorTb4b4b4(Te6edf3canvasColorTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3webView Tff7b72!Tff7b72= Tff7b72nullTb4b4b4) Tb4b4b4{
Te6edf3webViewTb4b4b4.Te6edf3setBackgroundColorTb4b4b4(Te6edf3canvasColorTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3loadingText Tff7b72!Tff7b72= Tff7b72nullTb4b4b4) Tb4b4b4{
Te6edf3loadingTextTb4b4b4.Te6edf3setTextColorTb4b4b4(
Te6edf3ContextCompatTb4b4b4.Te6edf3getColorTb4b4b4(Tff7b72thisTb4b4b4, Te6edf3dark Tff7b72? Te6edf3RTb4b4b4.Te6edf3colorTb4b4b4.Te6edf3white Tb4b4b4: Te6edf3RTb4b4b4.Te6edf3colorTb4b4b4.Te6edf3blackTb4b4b4)
Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tff7b72private Tffa657void Td2a8ffsetUiThemeFromBridgeTb4b4b4(Te6edf3String Te6edf3themeTb4b4b4) Tb4b4b4{
Te6edf3String Te6edf3normalized Tff7b72= Te6edf3isDarkUiThemeTb4b4b4(Te6edf3themeTb4b4b4) Tff7b72? Te6edf3THEME_DARK Tb4b4b4: Te6edf3THEME_LIGHTTb4b4b4;
Te6edf3persistPreferredUiThemeTb4b4b4(Te6edf3normalizedTb4b4b4)Tb4b4b4;
Te6edf3applyShellCanvasThemeTb4b4b4(Te6edf3normalizedTb4b4b4)Tb4b4b4;
T8b949e// Update night mode without forcing an immediate recreate mid-session.
T8b949e// Next cold start applies local night mode before setContentView.
Tffa657int Te6edf3desired Tff7b72=
Te6edf3isDarkUiThemeTb4b4b4(Te6edf3normalizedTb4b4b4)
Tff7b72? Te6edf3AppCompatDelegateTb4b4b4.Te6edf3MODE_NIGHT_YES
Tb4b4b4: Te6edf3AppCompatDelegateTb4b4b4.Te6edf3MODE_NIGHT_NOTb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3getDelegateTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3getLocalNightModeTb4b4b4(Tb4b4b4) Tff7b72!Tff7b72= Te6edf3desiredTb4b4b4) Tb4b4b4{
Te6edf3getDelegateTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3setLocalNightModeTb4b4b4(Te6edf3desiredTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tff7b72private Tffa657boolean Td2a8ffisBlockScreenshotsEnabledTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3getSharedPreferencesTb4b4b4(Te6edf3SHELL_PREFSTb4b4b4, Te6edf3MODE_PRIVATETb4b4b4)
Tb4b4b4.Te6edf3getBooleanTb4b4b4(Te6edf3PREF_BLOCK_SCREENSHOTSTb4b4b4, Tff7b72falseTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72private Tffa657void Td2a8ffsetBlockScreenshotsEnabledTb4b4b4(Tffa657boolean Te6edf3enabledTb4b4b4) Tb4b4b4{
Te6edf3getSharedPreferencesTb4b4b4(Te6edf3SHELL_PREFSTb4b4b4, Te6edf3MODE_PRIVATETb4b4b4)
Tb4b4b4.Te6edf3editTb4b4b4(Tb4b4b4)
Tb4b4b4.Te6edf3putBooleanTb4b4b4(Te6edf3PREF_BLOCK_SCREENSHOTSTb4b4b4, Te6edf3enabledTb4b4b4)
Tb4b4b4.Te6edf3applyTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3applyBlockScreenshotsTb4b4b4(Te6edf3enabledTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72private Tffa657void Td2a8ffapplyBlockScreenshotsTb4b4b4(Tffa657boolean Te6edf3enabledTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3enabledTb4b4b4) Tb4b4b4{
Te6edf3getWindowTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3addFlagsTb4b4b4(Te6edf3WindowManagerTb4b4b4.Te6edf3LayoutParamsTb4b4b4.Te6edf3FLAG_SECURETb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72else Tb4b4b4{
Te6edf3getWindowTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3clearFlagsTb4b4b4(Te6edf3WindowManagerTb4b4b4.Te6edf3LayoutParamsTb4b4b4.Te6edf3FLAG_SECURETb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tff7b72private Tffa657boolean Td2a8ffisClearClipboardOnBackgroundEnabledTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3getSharedPreferencesTb4b4b4(Te6edf3SHELL_PREFSTb4b4b4, Te6edf3MODE_PRIVATETb4b4b4)
Tb4b4b4.Te6edf3getBooleanTb4b4b4(Te6edf3PREF_CLEAR_CLIPBOARD_ON_BACKGROUNDTb4b4b4, Tff7b72falseTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72private Tffa657void Td2a8ffsetClearClipboardOnBackgroundEnabledTb4b4b4(Tffa657boolean Te6edf3enabledTb4b4b4) Tb4b4b4{
Te6edf3getSharedPreferencesTb4b4b4(Te6edf3SHELL_PREFSTb4b4b4, Te6edf3MODE_PRIVATETb4b4b4)
Tb4b4b4.Te6edf3editTb4b4b4(Tb4b4b4)
Tb4b4b4.Te6edf3putBooleanTb4b4b4(Te6edf3PREF_CLEAR_CLIPBOARD_ON_BACKGROUNDTb4b4b4, Te6edf3enabledTb4b4b4)
Tb4b4b4.Te6edf3applyTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72private Tffa657void Td2a8ffclearPrimaryClipboardTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72try Tb4b4b4{
Te6edf3ClipboardManager Te6edf3clipboard Tff7b72=
Tb4b4b4(Te6edf3ClipboardManagerTb4b4b4) Te6edf3getSystemServiceTb4b4b4(Te6edf3ContextTb4b4b4.Te6edf3CLIPBOARD_SERVICETb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3clipboard Tff7b72=Tff7b72= Tff7b72nullTb4b4b4) Tb4b4b4{
Tff7b72returnTb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3BuildTb4b4b4.Te6edf3VERSIONTb4b4b4.Te6edf3SDK_INT Tff7b72>Tff7b72= Te6edf3BuildTb4b4b4.Te6edf3VERSION_CODESTb4b4b4.Te6edf3PTb4b4b4) Tb4b4b4{
Te6edf3clipboardTb4b4b4.Te6edf3clearPrimaryClipTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72else Tb4b4b4{
Te6edf3clipboardTb4b4b4.Te6edf3setPrimaryClipTb4b4b4(Te6edf3ClipDataTb4b4b4.Te6edf3newPlainTextTb4b4b4(Ta5d6ff"Ta5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ff"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3Exception Te6edf3ignoredTb4b4b4) Tb4b4b4{
T8b949e// Clipboard access can fail on locked devices or OEM builds.
Tb4b4b4}
Tb4b4b4}
Tff7b72private Te6edf3String Td2a8fftoStackTraceTb4b4b4(Te6edf3Throwable Te6edf3errorTb4b4b4) Tb4b4b4{
Te6edf3StringWriter Te6edf3sw Tff7b72= Tff7b72new Te6edf3StringWriterTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3PrintWriter Te6edf3pw Tff7b72= Tff7b72new Te6edf3PrintWriterTb4b4b4(Te6edf3swTb4b4b4)Tb4b4b4;
Te6edf3errorTb4b4b4.Te6edf3printStackTraceTb4b4b4(Te6edf3pwTb4b4b4)Tb4b4b4;
Te6edf3pwTb4b4b4.Te6edf3flushTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72return Te6edf3swTb4b4b4.Te6edf3toStringTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72private Tffa657void Td2a8ffhideStartupLoadingOverlayTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3webView Tff7b72!Tff7b72= Tff7b72nullTb4b4b4) Tb4b4b4{
Te6edf3webViewTb4b4b4.Te6edf3setVisibilityTb4b4b4(Te6edf3androidTb4b4b4.Te6edf3viewTb4b4b4.Te6edf3ViewTb4b4b4.Te6edf3VISIBLETb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3loadingLogo Tff7b72!Tff7b72= Tff7b72nullTb4b4b4) Tb4b4b4{
Te6edf3loadingLogoTb4b4b4.Te6edf3setVisibilityTb4b4b4(Te6edf3androidTb4b4b4.Te6edf3viewTb4b4b4.Te6edf3ViewTb4b4b4.Te6edf3GONETb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3progressBar Tff7b72!Tff7b72= Tff7b72nullTb4b4b4) Tb4b4b4{
Te6edf3progressBarTb4b4b4.Te6edf3setVisibilityTb4b4b4(Te6edf3androidTb4b4b4.Te6edf3viewTb4b4b4.Te6edf3ViewTb4b4b4.Te6edf3GONETb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3loadingText Tff7b72!Tff7b72= Tff7b72nullTb4b4b4) Tb4b4b4{
Te6edf3loadingTextTb4b4b4.Te6edf3setVisibilityTb4b4b4(Te6edf3androidTb4b4b4.Te6edf3viewTb4b4b4.Te6edf3ViewTb4b4b4.Te6edf3GONETb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3errorText Tff7b72!Tff7b72= Tff7b72null Tff7b72&Tff7b72& Tff7b72!Te6edf3backendFailedTb4b4b4) Tb4b4b4{
Te6edf3errorTextTb4b4b4.Te6edf3setVisibilityTb4b4b4(Te6edf3androidTb4b4b4.Te6edf3viewTb4b4b4.Te6edf3ViewTb4b4b4.Te6edf3GONETb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tff7b72private Tffa657void Td2a8ffshowStartupErrorTb4b4b4(Te6edf3String Te6edf3titleTb4b4b4, Tf0883e@Nullable Te6edf3String Te6edf3detailTb4b4b4) Tb4b4b4{
Tff7b72final Te6edf3String Te6edf3message Tff7b72= Te6edf3StartupErrorReportTb4b4b4.Te6edf3formatTb4b4b4(
Te6edf3titleTb4b4b4,
Te6edf3detailTb4b4b4,
Te6edf3StartupErrorReportTb4b4b4.Te6edf3collectTb4b4b4(Tff7b72thisTb4b4b4)
Tb4b4b4)Tb4b4b4;
Te6edf3runOnUiThreadTb4b4b4(Tb4b4b4(Tb4b4b4) Tff7b72-Tff7b72> Tb4b4b4{
Te6edf3mainHandlerTb4b4b4.Te6edf3removeCallbacksAndMessagesTb4b4b4(Tff7b72nullTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3webView Tff7b72!Tff7b72= Tff7b72nullTb4b4b4) Tb4b4b4{
Te6edf3webViewTb4b4b4.Te6edf3setVisibilityTb4b4b4(Te6edf3androidTb4b4b4.Te6edf3viewTb4b4b4.Te6edf3ViewTb4b4b4.Te6edf3INVISIBLETb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3loadingLogo Tff7b72!Tff7b72= Tff7b72nullTb4b4b4) Tb4b4b4{
Te6edf3loadingLogoTb4b4b4.Te6edf3setVisibilityTb4b4b4(Te6edf3androidTb4b4b4.Te6edf3viewTb4b4b4.Te6edf3ViewTb4b4b4.Te6edf3GONETb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3progressBar Tff7b72!Tff7b72= Tff7b72nullTb4b4b4) Tb4b4b4{
Te6edf3progressBarTb4b4b4.Te6edf3setVisibilityTb4b4b4(Te6edf3androidTb4b4b4.Te6edf3viewTb4b4b4.Te6edf3ViewTb4b4b4.Te6edf3GONETb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3loadingText Tff7b72!Tff7b72= Tff7b72nullTb4b4b4) Tb4b4b4{
Te6edf3loadingTextTb4b4b4.Te6edf3setVisibilityTb4b4b4(Te6edf3androidTb4b4b4.Te6edf3viewTb4b4b4.Te6edf3ViewTb4b4b4.Te6edf3GONETb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3errorText Tff7b72!Tff7b72= Tff7b72nullTb4b4b4) Tb4b4b4{
Te6edf3errorTextTb4b4b4.Te6edf3setTextTb4b4b4(Te6edf3messageTb4b4b4)Tb4b4b4;
Te6edf3errorTextTb4b4b4.Te6edf3setVisibilityTb4b4b4(Te6edf3androidTb4b4b4.Te6edf3viewTb4b4b4.Te6edf3ViewTb4b4b4.Te6edf3VISIBLETb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72private Tffa657void Td2a8ffshowLoadingTb4b4b4(Te6edf3String Te6edf3messageTb4b4b4) Tb4b4b4{
Te6edf3runOnUiThreadTb4b4b4(Tb4b4b4(Tb4b4b4) Tff7b72-Tff7b72> Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3startupPageLoadedTb4b4b4) Tb4b4b4{
Tff7b72returnTb4b4b4;
Tb4b4b4}
Te6edf3webViewTb4b4b4.Te6edf3setVisibilityTb4b4b4(Te6edf3androidTb4b4b4.Te6edf3viewTb4b4b4.Te6edf3ViewTb4b4b4.Te6edf3INVISIBLETb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3loadingLogo Tff7b72!Tff7b72= Tff7b72nullTb4b4b4) Tb4b4b4{
Te6edf3loadingLogoTb4b4b4.Te6edf3setVisibilityTb4b4b4(Te6edf3androidTb4b4b4.Te6edf3viewTb4b4b4.Te6edf3ViewTb4b4b4.Te6edf3VISIBLETb4b4b4)Tb4b4b4;
Tb4b4b4}
Te6edf3progressBarTb4b4b4.Te6edf3setVisibilityTb4b4b4(Te6edf3androidTb4b4b4.Te6edf3viewTb4b4b4.Te6edf3ViewTb4b4b4.Te6edf3VISIBLETb4b4b4)Tb4b4b4;
Te6edf3errorTextTb4b4b4.Te6edf3setVisibilityTb4b4b4(Te6edf3androidTb4b4b4.Te6edf3viewTb4b4b4.Te6edf3ViewTb4b4b4.Te6edf3GONETb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3loadingText Tff7b72!Tff7b72= Tff7b72nullTb4b4b4) Tb4b4b4{
Te6edf3loadingTextTb4b4b4.Te6edf3setTextTb4b4b4(Te6edf3formatLoadingMessageTb4b4b4(Te6edf3messageTb4b4b4)Tb4b4b4)Tb4b4b4;
Te6edf3loadingTextTb4b4b4.Te6edf3setVisibilityTb4b4b4(Te6edf3androidTb4b4b4.Te6edf3viewTb4b4b4.Te6edf3ViewTb4b4b4.Te6edf3VISIBLETb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72private Te6edf3String Td2a8ffformatLoadingMessageTb4b4b4(Te6edf3String Te6edf3fallbackMessageTb4b4b4) Tb4b4b4{
Tffa657int Te6edf3phaseIndex Tff7b72= Te6edf3MathTb4b4b4.Te6edf3minTb4b4b4(
Te6edf3STARTUP_PHASESTb4b4b4.Te6edf3length Tff7b72- T79c0ff1Tb4b4b4,
Tb4b4b4(Te6edf3connectionAttempts Tff7b72* Te6edf3STARTUP_PHASESTb4b4b4.Te6edf3lengthTb4b4b4) Tff7b72/ Te6edf3MathTb4b4b4.Te6edf3maxTb4b4b4(T79c0ff1Tb4b4b4, Te6edf3MAX_CONNECTION_ATTEMPTSTb4b4b4)
Tb4b4b4)Tb4b4b4;
T8b949e// Prefer friendly phase copy over technical/counter messages.
Tff7b72if Tb4b4b4(Te6edf3fallbackMessage Tff7b72=Tff7b72= Tff7b72null Tff7b72|Tff7b72| Te6edf3fallbackMessageTb4b4b4.Te6edf3isEmptyTb4b4b4(Tb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3STARTUP_PHASESTff7b72[Te6edf3phaseIndexTff7b72]Tb4b4b4;
Tb4b4b4}
Te6edf3String Te6edf3trimmed Tff7b72= Te6edf3fallbackMessageTb4b4b4.Te6edf3trimTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3trimmedTb4b4b4.Te6edf3startsWithTb4b4b4(Ta5d6ff"Ta5d6ffStarting MeshChatXTa5d6ff"Tb4b4b4)
Tff7b72|Tff7b72| Te6edf3trimmedTb4b4b4.Te6edf3startsWithTb4b4b4(Ta5d6ff"Ta5d6ffStill startingTa5d6ff"Tb4b4b4)
Tff7b72|Tff7b72| Te6edf3trimmedTb4b4b4.Te6edf3startsWithTb4b4b4(Ta5d6ff"Ta5d6ffRetryingTa5d6ff"Tb4b4b4)
Tff7b72|Tff7b72| Te6edf3trimmedTb4b4b4.Te6edf3startsWithTb4b4b4(Ta5d6ff"Ta5d6ffHaving troubleTa5d6ff"Tb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3STARTUP_PHASESTff7b72[Te6edf3phaseIndexTff7b72]Tb4b4b4;
Tb4b4b4}
Tff7b72return Te6edf3trimmedTb4b4b4;
Tb4b4b4}
Tf0883e@Override
Tff7b72public Tffa657void Td2a8ffonConfigurationChangedTb4b4b4(Te6edf3Configuration Te6edf3newConfigTb4b4b4) Tb4b4b4{
Tff7b72superTb4b4b4.Te6edf3onConfigurationChangedTb4b4b4(Te6edf3newConfigTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3webView Tff7b72!Tff7b72= Tff7b72nullTb4b4b4) Tb4b4b4{
Te6edf3webViewTb4b4b4.Te6edf3postTb4b4b4(Tb4b4b4(Tb4b4b4) Tff7b72-Tff7b72> Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3webView Tff7b72!Tff7b72= Tff7b72nullTb4b4b4) Tb4b4b4{
Te6edf3webViewTb4b4b4.Te6edf3requestLayoutTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tf0883e@Override
Tff7b72protected Tffa657void Td2a8ffonDestroyTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3telephoneNativeSession Tff7b72!Tff7b72= Tff7b72nullTb4b4b4) Tb4b4b4{
Te6edf3telephoneNativeSessionTb4b4b4.Te6edf3onDestroyTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3telephoneNativeSession Tff7b72= Tff7b72nullTb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3attachmentPcmRecorder Tff7b72!Tff7b72= Tff7b72nullTb4b4b4) Tb4b4b4{
Te6edf3attachmentPcmRecorderTb4b4b4.Te6edf3cancelTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3attachmentPcmRecorder Tff7b72= Tff7b72nullTb4b4b4;
Tb4b4b4}
Te6edf3stopServiceTb4b4b4(Tff7b72new Te6edf3IntentTb4b4b4(Tff7b72thisTb4b4b4, Te6edf3MeshChatForegroundServiceTb4b4b4.Te6edf3classTb4b4b4)Tb4b4b4)Tb4b4b4;
Tff7b72superTb4b4b4.Te6edf3onDestroyTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3mainHandlerTb4b4b4.Te6edf3removeCallbacksAndMessagesTb4b4b4(Tff7b72nullTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3pendingWebPermissionRequest Tff7b72!Tff7b72= Tff7b72nullTb4b4b4) Tb4b4b4{
Te6edf3pendingWebPermissionRequestTb4b4b4.Te6edf3denyTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3pendingWebPermissionRequest Tff7b72= Tff7b72nullTb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3pendingGeolocationPermissionCallback Tff7b72!Tff7b72= Tff7b72nullTb4b4b4) Tb4b4b4{
Te6edf3pendingGeolocationPermissionCallbackTb4b4b4.Te6edf3invokeTb4b4b4(Te6edf3pendingGeolocationOriginTb4b4b4, Tff7b72falseTb4b4b4, Tff7b72falseTb4b4b4)Tb4b4b4;
Te6edf3pendingGeolocationPermissionCallback Tff7b72= Tff7b72nullTb4b4b4;
Te6edf3pendingGeolocationOrigin Tff7b72= Tff7b72nullTb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3filePathCallback Tff7b72!Tff7b72= Tff7b72nullTb4b4b4) Tb4b4b4{
Te6edf3filePathCallbackTb4b4b4.Te6edf3onReceiveValueTb4b4b4(Tff7b72nullTb4b4b4)Tb4b4b4;
Te6edf3filePathCallback Tff7b72= Tff7b72nullTb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3webView Tff7b72!Tff7b72= Tff7b72nullTb4b4b4) Tb4b4b4{
Te6edf3webViewTb4b4b4.Te6edf3destroyTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Te6edf3WebView Td2a8ffgetWebViewForNativeBridgeTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3webViewTb4b4b4;
Tb4b4b4}
Tff7b72private Tffa657void Td2a8ffonWebViewDownloadStartTb4b4b4(
Te6edf3String Te6edf3urlTb4b4b4,
Te6edf3String Te6edf3userAgentTb4b4b4,
Te6edf3String Te6edf3contentDispositionTb4b4b4,
Te6edf3String Te6edf3mimeTypeTb4b4b4,
Tffa657long Te6edf3contentLength
Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3url Tff7b72=Tff7b72= Tff7b72null Tff7b72|Tff7b72| Te6edf3urlTb4b4b4.Te6edf3isEmptyTb4b4b4(Tb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72returnTb4b4b4;
Tb4b4b4}
Te6edf3Uri Te6edf3uri Tff7b72= Te6edf3UriTb4b4b4.Te6edf3parseTb4b4b4(Te6edf3urlTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3isAllowedWebViewNavigationUriTb4b4b4(Te6edf3uriTb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72returnTb4b4b4;
Tb4b4b4}
Te6edf3String Te6edf3scheme Tff7b72= Te6edf3uriTb4b4b4.Te6edf3getSchemeTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3scheme Tff7b72=Tff7b72= Tff7b72nullTb4b4b4) Tb4b4b4{
Tff7b72returnTb4b4b4;
Tb4b4b4}
Te6edf3String Te6edf3s Tff7b72= Te6edf3schemeTb4b4b4.Te6edf3toLowerCaseTb4b4b4(Te6edf3LocaleTb4b4b4.Te6edf3ROOTTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Ta5d6ff"Ta5d6ffhttpTa5d6ff"Tb4b4b4.Te6edf3equalsTb4b4b4(Te6edf3sTb4b4b4) Tff7b72&Tff7b72& Tff7b72!Ta5d6ff"Ta5d6ffhttpsTa5d6ff"Tb4b4b4.Te6edf3equalsTb4b4b4(Te6edf3sTb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72returnTb4b4b4;
Tb4b4b4}
Te6edf3String Te6edf3fileName Tff7b72= Te6edf3parseDownloadFileNameTb4b4b4(Te6edf3contentDispositionTb4b4b4, Te6edf3uriTb4b4b4)Tb4b4b4;
Tff7b72new Te6edf3ThreadTb4b4b4(Tb4b4b4(Tb4b4b4) Tff7b72-Tff7b72> Te6edf3fetchAndPersistWebViewDownloadTb4b4b4(Te6edf3urlTb4b4b4, Te6edf3fileNameTb4b4b4)Tb4b4b4, Ta5d6ff"Ta5d6ffmeshchatx-webview-dlTa5d6ff"Tb4b4b4)Tb4b4b4.Te6edf3startTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72private Tff7b72static Te6edf3String Td2a8ffparseDownloadFileNameTb4b4b4(Te6edf3String Te6edf3contentDispositionTb4b4b4, Te6edf3Uri Te6edf3uriTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3contentDisposition Tff7b72!Tff7b72= Tff7b72null Tff7b72&Tff7b72& Tff7b72!Te6edf3contentDispositionTb4b4b4.Te6edf3isEmptyTb4b4b4(Tb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3Matcher Te6edf3star Tff7b72= Te6edf3PatternTb4b4b4.Te6edf3compileTb4b4b4(Ta5d6ff"Ta5d6fffilenameTa5d6ff\\Ta5d6ff*=UTF-8''([^;Ta5d6ff\\Ta5d6ffs]+)Ta5d6ff"Tb4b4b4, Te6edf3PatternTb4b4b4.Te6edf3CASE_INSENSITIVETb4b4b4)
Tb4b4b4.Te6edf3matcherTb4b4b4(Te6edf3contentDispositionTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3starTb4b4b4.Te6edf3findTb4b4b4(Tb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72try Tb4b4b4{
Tff7b72return Te6edf3javaTb4b4b4.Te6edf3netTb4b4b4.Te6edf3URLDecoderTb4b4b4.Te6edf3decodeTb4b4b4(Te6edf3starTb4b4b4.Te6edf3groupTb4b4b4(T79c0ff1Tb4b4b4)Tb4b4b4, Ta5d6ff"Ta5d6ffUTF-8Ta5d6ff"Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3Exception Te6edf3ignoredTb4b4b4) Tb4b4b4{
T8b949e// fall through
Tb4b4b4}
Tb4b4b4}
Te6edf3Matcher Te6edf3plain Tff7b72= Te6edf3PatternTb4b4b4.Te6edf3compileTb4b4b4(Ta5d6ff"Ta5d6fffilename=Ta5d6ff\"Ta5d6ff?([^Ta5d6ff\"Ta5d6ff;Ta5d6ff\\Ta5d6ffn]+)Ta5d6ff\"Ta5d6ff?Ta5d6ff"Tb4b4b4, Te6edf3PatternTb4b4b4.Te6edf3CASE_INSENSITIVETb4b4b4)
Tb4b4b4.Te6edf3matcherTb4b4b4(Te6edf3contentDispositionTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3plainTb4b4b4.Te6edf3findTb4b4b4(Tb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3plainTb4b4b4.Te6edf3groupTb4b4b4(T79c0ff1Tb4b4b4)Tb4b4b4.Te6edf3trimTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Te6edf3String Te6edf3segment Tff7b72= Te6edf3uri Tff7b72!Tff7b72= Tff7b72null Tff7b72? Te6edf3uriTb4b4b4.Te6edf3getLastPathSegmentTb4b4b4(Tb4b4b4) Tb4b4b4: Tff7b72nullTb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3segment Tff7b72!Tff7b72= Tff7b72null Tff7b72&Tff7b72& Tff7b72!Te6edf3segmentTb4b4b4.Te6edf3isEmptyTb4b4b4(Tb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3segmentTb4b4b4;
Tb4b4b4}
Tff7b72return Ta5d6ff"Ta5d6ffdownload.binTa5d6ff"Tb4b4b4;
Tb4b4b4}
Tff7b72private Tffa657void Td2a8fffetchAndPersistWebViewDownloadTb4b4b4(Te6edf3String Te6edf3urlTb4b4b4, Te6edf3String Te6edf3fileNameTb4b4b4) Tb4b4b4{
Tff7b72try Tb4b4b4{
Te6edf3RequestTb4b4b4.Te6edf3Builder Te6edf3builder Tff7b72= Tff7b72new Te6edf3RequestTb4b4b4.Te6edf3BuilderTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3urlTb4b4b4(Te6edf3urlTb4b4b4)Tb4b4b4;
Te6edf3String Te6edf3cookie Tff7b72= Te6edf3CookieManagerTb4b4b4.Te6edf3getInstanceTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3getCookieTb4b4b4(Te6edf3urlTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3cookie Tff7b72!Tff7b72= Tff7b72null Tff7b72&Tff7b72& Tff7b72!Te6edf3cookieTb4b4b4.Te6edf3isEmptyTb4b4b4(Tb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3builderTb4b4b4.Te6edf3addHeaderTb4b4b4(Ta5d6ff"Ta5d6ffCookieTa5d6ff"Tb4b4b4, Te6edf3cookieTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72try Tb4b4b4(Te6edf3Response Te6edf3response Tff7b72= Te6edf3LocalhostTrustOkHttpClientTb4b4b4.Te6edf3getTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3newCallTb4b4b4(Te6edf3builderTb4b4b4.Te6edf3buildTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3executeTb4b4b4(Tb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3responseTb4b4b4.Te6edf3isSuccessfulTb4b4b4(Tb4b4b4) Tff7b72|Tff7b72| Te6edf3responseTb4b4b4.Te6edf3bodyTb4b4b4(Tb4b4b4) Tff7b72=Tff7b72= Tff7b72nullTb4b4b4) Tb4b4b4{
Te6edf3runOnUiThreadTb4b4b4(
Tb4b4b4(Tb4b4b4) Tff7b72-Tff7b72>
Te6edf3ToastTb4b4b4.Te6edf3makeTextTb4b4b4(
Tff7b72thisTb4b4b4,
Ta5d6ff"Ta5d6ffDownload failed: HTTP Ta5d6ff" Tff7b72+ Te6edf3responseTb4b4b4.Te6edf3codeTb4b4b4(Tb4b4b4)Tb4b4b4,
Te6edf3ToastTb4b4b4.Te6edf3LENGTH_LONG
Tb4b4b4)Tb4b4b4.Te6edf3showTb4b4b4(Tb4b4b4)
Tb4b4b4)Tb4b4b4;
Tff7b72returnTb4b4b4;
Tb4b4b4}
Tffa657byteTff7b72[Tff7b72] Te6edf3data Tff7b72= Te6edf3responseTb4b4b4.Te6edf3bodyTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3bytesTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3runOnUiThreadTb4b4b4(
Tb4b4b4(Tb4b4b4) Tff7b72-Tff7b72> Tb4b4b4{
Tff7b72try Tb4b4b4{
Te6edf3persistMeshchatDownloadTb4b4b4(Te6edf3fileNameTb4b4b4, Te6edf3dataTb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3IOException Te6edf3eTb4b4b4) Tb4b4b4{
Te6edf3ToastTb4b4b4.Te6edf3makeTextTb4b4b4(
Tff7b72thisTb4b4b4,
Ta5d6ff"Ta5d6ffSave failed: Ta5d6ff" Tff7b72+ Te6edf3eTb4b4b4.Te6edf3getMessageTb4b4b4(Tb4b4b4)Tb4b4b4,
Te6edf3ToastTb4b4b4.Te6edf3LENGTH_LONG
Tb4b4b4)Tb4b4b4.Te6edf3showTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3Exception Te6edf3eTb4b4b4) Tb4b4b4{
Te6edf3runOnUiThreadTb4b4b4(
Tb4b4b4(Tb4b4b4) Tff7b72-Tff7b72> Te6edf3ToastTb4b4b4.Te6edf3makeTextTb4b4b4(Tff7b72thisTb4b4b4, Ta5d6ff"Ta5d6ffDownload failed: Ta5d6ff" Tff7b72+ Te6edf3eTb4b4b4.Te6edf3getMessageTb4b4b4(Tb4b4b4)Tb4b4b4, Te6edf3ToastTb4b4b4.Te6edf3LENGTH_LONGTb4b4b4)Tb4b4b4.Te6edf3showTb4b4b4(Tb4b4b4)
Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tffa657void Td2a8ffpersistMeshchatDownloadTb4b4b4(Te6edf3String Te6edf3fileNameTb4b4b4, Tffa657byteTff7b72[Tff7b72] Te6edf3dataTb4b4b4) Tff7b72throws Te6edf3IOException Tb4b4b4{
Te6edf3String Te6edf3safe Tff7b72= Te6edf3MeshchatDownloadUtilsTb4b4b4.Te6edf3sanitizeFileNameTb4b4b4(Te6edf3fileNameTb4b4b4)Tb4b4b4;
Te6edf3ContentResolver Te6edf3resolver Tff7b72= Te6edf3getContentResolverTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3BuildTb4b4b4.Te6edf3VERSIONTb4b4b4.Te6edf3SDK_INT Tff7b72>Tff7b72= Te6edf3BuildTb4b4b4.Te6edf3VERSION_CODESTb4b4b4.Te6edf3QTb4b4b4) Tb4b4b4{
Te6edf3ContentValues Te6edf3values Tff7b72= Tff7b72new Te6edf3ContentValuesTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3valuesTb4b4b4.Te6edf3putTb4b4b4(Te6edf3MediaStoreTb4b4b4.Te6edf3MediaColumnsTb4b4b4.Te6edf3DISPLAY_NAMETb4b4b4, Te6edf3safeTb4b4b4)Tb4b4b4;
Te6edf3String Te6edf3mime Tff7b72= Te6edf3URLConnectionTb4b4b4.Te6edf3guessContentTypeFromNameTb4b4b4(Te6edf3safeTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3mime Tff7b72=Tff7b72= Tff7b72nullTb4b4b4) Tb4b4b4{
Te6edf3mime Tff7b72= Ta5d6ff"Ta5d6ffapplication/octet-streamTa5d6ff"Tb4b4b4;
Tb4b4b4}
Te6edf3valuesTb4b4b4.Te6edf3putTb4b4b4(Te6edf3MediaStoreTb4b4b4.Te6edf3MediaColumnsTb4b4b4.Te6edf3MIME_TYPETb4b4b4, Te6edf3mimeTb4b4b4)Tb4b4b4;
Te6edf3valuesTb4b4b4.Te6edf3putTb4b4b4(Te6edf3MediaStoreTb4b4b4.Te6edf3MediaColumnsTb4b4b4.Te6edf3RELATIVE_PATHTb4b4b4, Te6edf3EnvironmentTb4b4b4.Te6edf3DIRECTORY_DOWNLOADSTb4b4b4)Tb4b4b4;
Te6edf3valuesTb4b4b4.Te6edf3putTb4b4b4(Te6edf3MediaStoreTb4b4b4.Te6edf3MediaColumnsTb4b4b4.Te6edf3IS_PENDINGTb4b4b4, T79c0ff1Tb4b4b4)Tb4b4b4;
Te6edf3Uri Te6edf3uri Tff7b72= Te6edf3resolverTb4b4b4.Te6edf3insertTb4b4b4(Te6edf3MediaStoreTb4b4b4.Te6edf3DownloadsTb4b4b4.Te6edf3EXTERNAL_CONTENT_URITb4b4b4, Te6edf3valuesTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3uri Tff7b72=Tff7b72= Tff7b72nullTb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Te6edf3IOExceptionTb4b4b4(Ta5d6ff"Ta5d6ffMediaStore insert failedTa5d6ff"Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72try Tb4b4b4(Te6edf3OutputStream Te6edf3out Tff7b72= Te6edf3resolverTb4b4b4.Te6edf3openOutputStreamTb4b4b4(Te6edf3uriTb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3out Tff7b72=Tff7b72= Tff7b72nullTb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Te6edf3IOExceptionTb4b4b4(Ta5d6ff"Ta5d6ffopenOutputStream failedTa5d6ff"Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Te6edf3outTb4b4b4.Te6edf3writeTb4b4b4(Te6edf3dataTb4b4b4)Tb4b4b4;
Tb4b4b4}
Te6edf3valuesTb4b4b4.Te6edf3clearTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3valuesTb4b4b4.Te6edf3putTb4b4b4(Te6edf3MediaStoreTb4b4b4.Te6edf3MediaColumnsTb4b4b4.Te6edf3IS_PENDINGTb4b4b4, T79c0ff0Tb4b4b4)Tb4b4b4;
Te6edf3resolverTb4b4b4.Te6edf3updateTb4b4b4(Te6edf3uriTb4b4b4, Te6edf3valuesTb4b4b4, Tff7b72nullTb4b4b4, Tff7b72nullTb4b4b4)Tb4b4b4;
Te6edf3ToastTb4b4b4.Te6edf3makeTextTb4b4b4(Tff7b72thisTb4b4b4, Te6edf3getStringTb4b4b4(Te6edf3RTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3download_saved_meshchatxTb4b4b4, Te6edf3safeTb4b4b4)Tb4b4b4, Te6edf3ToastTb4b4b4.Te6edf3LENGTH_LONGTb4b4b4)Tb4b4b4.Te6edf3showTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72else Tb4b4b4{
Te6edf3File Te6edf3dir Tff7b72= Te6edf3getExternalFilesDirTb4b4b4(Te6edf3EnvironmentTb4b4b4.Te6edf3DIRECTORY_DOWNLOADSTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3dir Tff7b72=Tff7b72= Tff7b72nullTb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Te6edf3IOExceptionTb4b4b4(Ta5d6ff"Ta5d6ffno download directoryTa5d6ff"Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3dirTb4b4b4.Te6edf3existsTb4b4b4(Tb4b4b4) Tff7b72&Tff7b72& Tff7b72!Te6edf3dirTb4b4b4.Te6edf3mkdirsTb4b4b4(Tb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Te6edf3IOExceptionTb4b4b4(Ta5d6ff"Ta5d6ffmkdirs failedTa5d6ff"Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Te6edf3File Te6edf3target Tff7b72= Tff7b72new Te6edf3FileTb4b4b4(Te6edf3dirTb4b4b4, Te6edf3safeTb4b4b4)Tb4b4b4;
Tff7b72try Tb4b4b4(Te6edf3FileOutputStream Te6edf3fos Tff7b72= Tff7b72new Te6edf3FileOutputStreamTb4b4b4(Te6edf3targetTb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3fosTb4b4b4.Te6edf3writeTb4b4b4(Te6edf3dataTb4b4b4)Tb4b4b4;
Tb4b4b4}
Te6edf3ToastTb4b4b4.Te6edf3makeTextTb4b4b4(Tff7b72thisTb4b4b4, Te6edf3getStringTb4b4b4(Te6edf3RTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3download_saved_app_filesTb4b4b4, Te6edf3targetTb4b4b4.Te6edf3getAbsolutePathTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4, Te6edf3ToastTb4b4b4.Te6edf3LENGTH_LONGTb4b4b4)
Tb4b4b4.Te6edf3showTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tff7b72private Tff7b72static Tff7b72class T56d364MeshChatXAndroidBridge Tb4b4b4{
Tff7b72private Tff7b72final Te6edf3MainActivity Te6edf3activityTb4b4b4;
Te6edf3MeshChatXAndroidBridgeTb4b4b4(Te6edf3MainActivity Te6edf3activityTb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3activity Tff7b72= Te6edf3activityTb4b4b4;
Tb4b4b4}
Tf0883e@JavascriptInterface
Tff7b72public Tffa657void Td2a8ffsaveDownloadTb4b4b4(Te6edf3String Te6edf3fileNameTb4b4b4, Te6edf3String Te6edf3base64DataTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3base64Data Tff7b72=Tff7b72= Tff7b72nullTb4b4b4) Tb4b4b4{
Tff7b72returnTb4b4b4;
Tb4b4b4}
Te6edf3activityTb4b4b4.Te6edf3runOnUiThreadTb4b4b4(Tb4b4b4(Tb4b4b4) Tff7b72-Tff7b72> Tb4b4b4{
Tff7b72try Tb4b4b4{
Tffa657byteTff7b72[Tff7b72] Te6edf3raw Tff7b72= Te6edf3androidTb4b4b4.Te6edf3utilTb4b4b4.Te6edf3Base64Tb4b4b4.Te6edf3decodeTb4b4b4(Te6edf3base64DataTb4b4b4, Te6edf3androidTb4b4b4.Te6edf3utilTb4b4b4.Te6edf3Base64Tb4b4b4.Te6edf3DEFAULTTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3rawTb4b4b4.Te6edf3length Tff7b72=Tff7b72= T79c0ff0Tb4b4b4) Tb4b4b4{
Te6edf3ToastTb4b4b4.Te6edf3makeTextTb4b4b4(Te6edf3activityTb4b4b4, Ta5d6ff"Ta5d6ffEmpty fileTa5d6ff"Tb4b4b4, Te6edf3ToastTb4b4b4.Te6edf3LENGTH_SHORTTb4b4b4)Tb4b4b4.Te6edf3showTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72returnTb4b4b4;
Tb4b4b4}
Te6edf3activityTb4b4b4.Te6edf3persistMeshchatDownloadTb4b4b4(Te6edf3fileNameTb4b4b4, Te6edf3rawTb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3IllegalArgumentException Te6edf3eTb4b4b4) Tb4b4b4{
Te6edf3ToastTb4b4b4.Te6edf3makeTextTb4b4b4(Te6edf3activityTb4b4b4, Ta5d6ff"Ta5d6ffInvalid download dataTa5d6ff"Tb4b4b4, Te6edf3ToastTb4b4b4.Te6edf3LENGTH_LONGTb4b4b4)Tb4b4b4.Te6edf3showTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3IOException Te6edf3eTb4b4b4) Tb4b4b4{
Te6edf3ToastTb4b4b4.Te6edf3makeTextTb4b4b4(Te6edf3activityTb4b4b4, Ta5d6ff"Ta5d6ffSave failed: Ta5d6ff" Tff7b72+ Te6edf3eTb4b4b4.Te6edf3getMessageTb4b4b4(Tb4b4b4)Tb4b4b4, Te6edf3ToastTb4b4b4.Te6edf3LENGTH_LONGTb4b4b4)Tb4b4b4.Te6edf3showTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tf0883e@JavascriptInterface
Tff7b72public Tffa657void Td2a8ffexitAppTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3activityTb4b4b4.Te6edf3runOnUiThreadTb4b4b4(Tb4b4b4(Tb4b4b4) Tff7b72-Tff7b72> Tb4b4b4{
Te6edf3activityTb4b4b4.Te6edf3finishAffinityTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3androidTb4b4b4.Te6edf3osTb4b4b4.Te6edf3ProcessTb4b4b4.Te6edf3killProcessTb4b4b4(Te6edf3androidTb4b4b4.Te6edf3osTb4b4b4.Te6edf3ProcessTb4b4b4.Te6edf3myPidTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tf0883e@JavascriptInterface
Tff7b72public Te6edf3String Td2a8ffgetPlatformTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72return Ta5d6ff"Ta5d6ffandroidTa5d6ff"Tb4b4b4;
Tb4b4b4}
Tf0883e@JavascriptInterface
Tff7b72public Te6edf3String Td2a8ffgetBatteryStatusTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72try Tb4b4b4{
Tffa657int Te6edf3level Tff7b72= Tff7b72-T79c0ff1Tb4b4b4;
Tffa657boolean Te6edf3charging Tff7b72= Tff7b72falseTb4b4b4;
Te6edf3BatteryManager Te6edf3batteryManager Tff7b72=
Tb4b4b4(Te6edf3BatteryManagerTb4b4b4) Te6edf3activityTb4b4b4.Te6edf3getSystemServiceTb4b4b4(Te6edf3ContextTb4b4b4.Te6edf3BATTERY_SERVICETb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3batteryManager Tff7b72!Tff7b72= Tff7b72nullTb4b4b4) Tb4b4b4{
Te6edf3level Tff7b72= Te6edf3batteryManagerTb4b4b4.Te6edf3getIntPropertyTb4b4b4(Te6edf3BatteryManagerTb4b4b4.Te6edf3BATTERY_PROPERTY_CAPACITYTb4b4b4)Tb4b4b4;
T8b949e// BatteryManager may return Integer.MIN_VALUE when unsupported.
Tff7b72if Tb4b4b4(Te6edf3level Tff7b72< T79c0ff0 Tff7b72|Tff7b72| Te6edf3level Tff7b72> T79c0ff100Tb4b4b4) Tb4b4b4{
Te6edf3level Tff7b72= Tff7b72-T79c0ff1Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3BuildTb4b4b4.Te6edf3VERSIONTb4b4b4.Te6edf3SDK_INT Tff7b72>Tff7b72= Te6edf3BuildTb4b4b4.Te6edf3VERSION_CODESTb4b4b4.Te6edf3MTb4b4b4) Tb4b4b4{
Te6edf3charging Tff7b72= Te6edf3batteryManagerTb4b4b4.Te6edf3isChargingTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Te6edf3IntentFilter Te6edf3filter Tff7b72= Tff7b72new Te6edf3IntentFilterTb4b4b4(Te6edf3IntentTb4b4b4.Te6edf3ACTION_BATTERY_CHANGEDTb4b4b4)Tb4b4b4;
Te6edf3Intent Te6edf3batteryStatus Tff7b72= Te6edf3activityTb4b4b4.Te6edf3registerReceiverTb4b4b4(Tff7b72nullTb4b4b4, Te6edf3filterTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3batteryStatus Tff7b72!Tff7b72= Tff7b72nullTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3level Tff7b72< T79c0ff0Tb4b4b4) Tb4b4b4{
Tffa657int Te6edf3rawLevel Tff7b72= Te6edf3batteryStatusTb4b4b4.Te6edf3getIntExtraTb4b4b4(Te6edf3BatteryManagerTb4b4b4.Te6edf3EXTRA_LEVELTb4b4b4, Tff7b72-T79c0ff1Tb4b4b4)Tb4b4b4;
Tffa657int Te6edf3scale Tff7b72= Te6edf3batteryStatusTb4b4b4.Te6edf3getIntExtraTb4b4b4(Te6edf3BatteryManagerTb4b4b4.Te6edf3EXTRA_SCALETb4b4b4, T79c0ff100Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3rawLevel Tff7b72>Tff7b72= T79c0ff0 Tff7b72&Tff7b72& Te6edf3scale Tff7b72> T79c0ff0Tb4b4b4) Tb4b4b4{
Te6edf3level Tff7b72= Te6edf3MathTb4b4b4.Te6edf3roundTb4b4b4(Tb4b4b4(Te6edf3rawLevel Tff7b72* T79c0ff100Te6edf3fTb4b4b4) Tff7b72/ Te6edf3scaleTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3BuildTb4b4b4.Te6edf3VERSIONTb4b4b4.Te6edf3SDK_INT Tff7b72< Te6edf3BuildTb4b4b4.Te6edf3VERSION_CODESTb4b4b4.Te6edf3MTb4b4b4) Tb4b4b4{
Tffa657int Te6edf3status Tff7b72=
Te6edf3batteryStatusTb4b4b4.Te6edf3getIntExtraTb4b4b4(
Te6edf3BatteryManagerTb4b4b4.Te6edf3EXTRA_STATUSTb4b4b4,
Te6edf3BatteryManagerTb4b4b4.Te6edf3BATTERY_STATUS_UNKNOWNTb4b4b4)Tb4b4b4;
Te6edf3charging Tff7b72=
Te6edf3status Tff7b72=Tff7b72= Te6edf3BatteryManagerTb4b4b4.Te6edf3BATTERY_STATUS_CHARGING
Tff7b72|Tff7b72| Te6edf3status Tff7b72=Tff7b72= Te6edf3BatteryManagerTb4b4b4.Te6edf3BATTERY_STATUS_FULLTb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3level Tff7b72< T79c0ff0Tb4b4b4) Tb4b4b4{
Tff7b72return Ta5d6ff"Ta5d6ff"Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3level Tff7b72> T79c0ff100Tb4b4b4) Tb4b4b4{
Te6edf3level Tff7b72= T79c0ff100Tb4b4b4;
Tb4b4b4}
Tff7b72return Ta5d6ff"Ta5d6ff{Ta5d6ff\"Ta5d6fflevelTa5d6ff\"Ta5d6ff:Ta5d6ff"
Tff7b72+ Te6edf3level
Tff7b72+ Ta5d6ff"Ta5d6ff,Ta5d6ff\"Ta5d6ffchargingTa5d6ff\"Ta5d6ff:Ta5d6ff"
Tff7b72+ Tb4b4b4(Te6edf3charging Tff7b72? Ta5d6ff"Ta5d6fftrueTa5d6ff" Tb4b4b4: Ta5d6ff"Ta5d6fffalseTa5d6ff"Tb4b4b4)
Tff7b72+ Ta5d6ff"Ta5d6ff,Ta5d6ff\"Ta5d6ffsourceTa5d6ff\"Ta5d6ff:Ta5d6ff\"Ta5d6ffandroidTa5d6ff\"Ta5d6ff}Ta5d6ff"Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3Exception Te6edf3eTb4b4b4) Tb4b4b4{
Tff7b72return Ta5d6ff"Ta5d6ff"Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tf0883e@JavascriptInterface
Tff7b72public Te6edf3String Td2a8ffgetPreferredUiThemeTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3activityTb4b4b4.Te6edf3resolvePreferredUiThemeTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tf0883e@JavascriptInterface
Tff7b72public Tffa657void Td2a8ffsetUiThemeTb4b4b4(Te6edf3String Te6edf3themeTb4b4b4) Tb4b4b4{
Te6edf3activityTb4b4b4.Te6edf3runOnUiThreadTb4b4b4(Tb4b4b4(Tb4b4b4) Tff7b72-Tff7b72> Te6edf3activityTb4b4b4.Te6edf3setUiThemeFromBridgeTb4b4b4(Te6edf3themeTb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tf0883e@JavascriptInterface
Tff7b72public Tffa657boolean Td2a8ffgetBlockScreenshotsTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3activityTb4b4b4.Te6edf3isBlockScreenshotsEnabledTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tf0883e@JavascriptInterface
Tff7b72public Tffa657void Td2a8ffsetBlockScreenshotsTb4b4b4(Tffa657boolean Te6edf3enabledTb4b4b4) Tb4b4b4{
Te6edf3activityTb4b4b4.Te6edf3runOnUiThreadTb4b4b4(Tb4b4b4(Tb4b4b4) Tff7b72-Tff7b72> Te6edf3activityTb4b4b4.Te6edf3setBlockScreenshotsEnabledTb4b4b4(Te6edf3enabledTb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tf0883e@JavascriptInterface
Tff7b72public Tffa657boolean Td2a8ffgetClearClipboardOnBackgroundTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3activityTb4b4b4.Te6edf3isClearClipboardOnBackgroundEnabledTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tf0883e@JavascriptInterface
Tff7b72public Tffa657void Td2a8ffsetClearClipboardOnBackgroundTb4b4b4(Tffa657boolean Te6edf3enabledTb4b4b4) Tb4b4b4{
Te6edf3activityTb4b4b4.Te6edf3runOnUiThreadTb4b4b4(Tb4b4b4(Tb4b4b4) Tff7b72-Tff7b72> Te6edf3activityTb4b4b4.Te6edf3setClearClipboardOnBackgroundEnabledTb4b4b4(Te6edf3enabledTb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tf0883e@JavascriptInterface
Tff7b72public Te6edf3String Td2a8ffgetRemoteBackendUrlTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3String Te6edf3stored Tff7b72= Te6edf3activityTb4b4b4.Te6edf3resolveStoredRemoteBackendUrlTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72return Te6edf3stored Tff7b72!Tff7b72= Tff7b72null Tff7b72? Te6edf3stored Tb4b4b4: Ta5d6ff"Ta5d6ff"Tb4b4b4;
Tb4b4b4}
Tf0883e@JavascriptInterface
Tff7b72public Te6edf3String Td2a8ffgetEffectiveBackendUrlTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3activityTb4b4b4.Te6edf3resolveBackendUrlTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tf0883e@JavascriptInterface
Tff7b72public Tffa657boolean Td2a8ffisRemoteBackendTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3activityTb4b4b4.Te6edf3isRemoteBackendModeTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
T8b949e/**
* Persist a remote backend URL and restart the app.
* Pass empty string to clear and use the on-device local backend.
* Returns ok, invalid, or unsupported.
*/
Tf0883e@JavascriptInterface
Tff7b72public Te6edf3String Td2a8ffsetRemoteBackendUrlAndRestartTb4b4b4(Te6edf3String Te6edf3urlTb4b4b4) Tb4b4b4{
Tff7b72final Te6edf3String Te6edf3normalized Tff7b72= Te6edf3RemoteBackendUrlTb4b4b4.Te6edf3normalizeTb4b4b4(Te6edf3urlTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3url Tff7b72!Tff7b72= Tff7b72null Tff7b72&Tff7b72& Tff7b72!Te6edf3urlTb4b4b4.Te6edf3trimTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3isEmptyTb4b4b4(Tb4b4b4) Tff7b72&Tff7b72& Te6edf3normalized Tff7b72=Tff7b72= Tff7b72nullTb4b4b4) Tb4b4b4{
Tff7b72return Ta5d6ff"Ta5d6ffinvalidTa5d6ff"Tb4b4b4;
Tb4b4b4}
Te6edf3String Te6edf3current Tff7b72= Te6edf3activityTb4b4b4.Te6edf3resolveStoredRemoteBackendUrlTb4b4b4(Tb4b4b4)Tb4b4b4;
Tffa657boolean Te6edf3same Tff7b72=
Tb4b4b4(Te6edf3normalized Tff7b72=Tff7b72= Tff7b72null Tff7b72&Tff7b72& Te6edf3current Tff7b72=Tff7b72= Tff7b72nullTb4b4b4)
Tff7b72|Tff7b72| Tb4b4b4(Te6edf3normalized Tff7b72!Tff7b72= Tff7b72null Tff7b72&Tff7b72& Te6edf3normalizedTb4b4b4.Te6edf3equalsTb4b4b4(Te6edf3currentTb4b4b4)Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3sameTb4b4b4) Tb4b4b4{
Tff7b72return Ta5d6ff"Ta5d6ffunchangedTa5d6ff"Tb4b4b4;
Tb4b4b4}
Te6edf3activityTb4b4b4.Te6edf3runOnUiThreadTb4b4b4(Tb4b4b4(Tb4b4b4) Tff7b72-Tff7b72> Tb4b4b4{
Te6edf3activityTb4b4b4.Te6edf3persistRemoteBackendUrlTb4b4b4(Te6edf3normalizedTb4b4b4)Tb4b4b4;
Te6edf3ToastTb4b4b4.Te6edf3makeTextTb4b4b4(
Te6edf3activityTb4b4b4,
Te6edf3normalized Tff7b72=Tff7b72= Tff7b72null
Tff7b72? Te6edf3RTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3remote_backend_switching_local
Tb4b4b4: Te6edf3RTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3remote_backend_switching_remoteTb4b4b4,
Te6edf3ToastTb4b4b4.Te6edf3LENGTH_SHORTTb4b4b4)
Tb4b4b4.Te6edf3showTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3activityTb4b4b4.Te6edf3restartAppForBackendChangeTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72return Ta5d6ff"Ta5d6ffokTa5d6ff"Tb4b4b4;
Tb4b4b4}
Tf0883e@JavascriptInterface
Tff7b72public Te6edf3String Td2a8ffgetSidebandPluginsDefaultPathTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72try Tb4b4b4{
Te6edf3File Te6edf3dir Tff7b72= Tff7b72new Te6edf3FileTb4b4b4(Te6edf3activityTb4b4b4.Te6edf3getFilesDirTb4b4b4(Tb4b4b4)Tb4b4b4, Ta5d6ff"Ta5d6ffmeshchatx/sideband-pluginsTa5d6ff"Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3dirTb4b4b4.Te6edf3isDirectoryTb4b4b4(Tb4b4b4) Tff7b72&Tff7b72& Tff7b72!Te6edf3dirTb4b4b4.Te6edf3mkdirsTb4b4b4(Tb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3activityTb4b4b4.Te6edf3getFilesDirTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3getAbsolutePathTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72return Te6edf3dirTb4b4b4.Te6edf3getAbsolutePathTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3Exception Te6edf3eTb4b4b4) Tb4b4b4{
Tff7b72return Ta5d6ff"Ta5d6ff"Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tf0883e@JavascriptInterface
Tff7b72public Tffa657void Td2a8ffshareApkTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3activityTb4b4b4.Te6edf3runOnUiThreadTb4b4b4(Tb4b4b4(Tb4b4b4) Tff7b72-Tff7b72> Tb4b4b4{
Tff7b72try Tb4b4b4{
Te6edf3String Te6edf3srcPath Tff7b72= Te6edf3activityTb4b4b4.Te6edf3getApplicationInfoTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3sourceDirTb4b4b4;
Te6edf3File Te6edf3src Tff7b72= Tff7b72new Te6edf3FileTb4b4b4(Te6edf3srcPathTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3srcTb4b4b4.Te6edf3isFileTb4b4b4(Tb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3ToastTb4b4b4.Te6edf3makeTextTb4b4b4(Te6edf3activityTb4b4b4, Te6edf3RTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3share_apk_unavailableTb4b4b4, Te6edf3ToastTb4b4b4.Te6edf3LENGTH_LONGTb4b4b4)Tb4b4b4.Te6edf3showTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72returnTb4b4b4;
Tb4b4b4}
Te6edf3File Te6edf3cacheDir Tff7b72= Tff7b72new Te6edf3FileTb4b4b4(Te6edf3activityTb4b4b4.Te6edf3getCacheDirTb4b4b4(Tb4b4b4)Tb4b4b4, Ta5d6ff"Ta5d6ffapk_shareTa5d6ff"Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3cacheDirTb4b4b4.Te6edf3isDirectoryTb4b4b4(Tb4b4b4) Tff7b72&Tff7b72& Tff7b72!Te6edf3cacheDirTb4b4b4.Te6edf3mkdirsTb4b4b4(Tb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3ToastTb4b4b4.Te6edf3makeTextTb4b4b4(Te6edf3activityTb4b4b4, Te6edf3RTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3share_apk_failedTb4b4b4, Te6edf3ToastTb4b4b4.Te6edf3LENGTH_LONGTb4b4b4)Tb4b4b4.Te6edf3showTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72returnTb4b4b4;
Tb4b4b4}
Te6edf3String Te6edf3ver Tff7b72= Ta5d6ff"Ta5d6ffunknownTa5d6ff"Tb4b4b4;
Tff7b72try Tb4b4b4{
Te6edf3androidTb4b4b4.Te6edf3contentTb4b4b4.Te6edf3pmTb4b4b4.Te6edf3PackageInfo Te6edf3pi Tff7b72=
Te6edf3activity
Tb4b4b4.Te6edf3getPackageManagerTb4b4b4(Tb4b4b4)
Tb4b4b4.Te6edf3getPackageInfoTb4b4b4(Te6edf3activityTb4b4b4.Te6edf3getPackageNameTb4b4b4(Tb4b4b4)Tb4b4b4, T79c0ff0Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3piTb4b4b4.Te6edf3versionName Tff7b72!Tff7b72= Tff7b72null Tff7b72&Tff7b72& Tff7b72!Te6edf3piTb4b4b4.Te6edf3versionNameTb4b4b4.Te6edf3isEmptyTb4b4b4(Tb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3ver Tff7b72= Te6edf3piTb4b4b4.Te6edf3versionNameTb4b4b4.Te6edf3replaceAllTb4b4b4(Ta5d6ff"Ta5d6ff[^A-Za-z0-9._-]+Ta5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ff_Ta5d6ff"Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3PackageManagerTb4b4b4.Te6edf3NameNotFoundException Te6edf3ignoredTb4b4b4) Tb4b4b4{
Tb4b4b4}
Te6edf3File Te6edf3dest Tff7b72= Tff7b72new Te6edf3FileTb4b4b4(Te6edf3cacheDirTb4b4b4, Ta5d6ff"Ta5d6ffmeshchatx-Ta5d6ff" Tff7b72+ Te6edf3ver Tff7b72+ Ta5d6ff"Ta5d6ff.apkTa5d6ff"Tb4b4b4)Tb4b4b4;
Tff7b72try Tb4b4b4(Te6edf3FileInputStream Te6edf3in Tff7b72= Tff7b72new Te6edf3FileInputStreamTb4b4b4(Te6edf3srcTb4b4b4)Tb4b4b4;
Te6edf3FileOutputStream Te6edf3out Tff7b72= Tff7b72new Te6edf3FileOutputStreamTb4b4b4(Te6edf3destTb4b4b4, Tff7b72falseTb4b4b4)Tb4b4b4) Tb4b4b4{
Tffa657byteTff7b72[Tff7b72] Te6edf3buf Tff7b72= Tff7b72new Tffa657byteTff7b72[T79c0ff8192Tff7b72]Tb4b4b4;
Tffa657int Te6edf3nTb4b4b4;
Tff7b72while Tb4b4b4(Tb4b4b4(Te6edf3n Tff7b72= Te6edf3inTb4b4b4.Te6edf3readTb4b4b4(Te6edf3bufTb4b4b4)Tb4b4b4) Tff7b72!Tff7b72= Tff7b72-T79c0ff1Tb4b4b4) Tb4b4b4{
Te6edf3outTb4b4b4.Te6edf3writeTb4b4b4(Te6edf3bufTb4b4b4, T79c0ff0Tb4b4b4, Te6edf3nTb4b4b4)Tb4b4b4;
Tb4b4b4}
Te6edf3outTb4b4b4.Te6edf3flushTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Te6edf3Uri Te6edf3uri Tff7b72=
Te6edf3FileProviderTb4b4b4.Te6edf3getUriForFileTb4b4b4(
Te6edf3activityTb4b4b4, Te6edf3activityTb4b4b4.Te6edf3getPackageNameTb4b4b4(Tb4b4b4) Tff7b72+ Ta5d6ff"Ta5d6ff.fileproviderTa5d6ff"Tb4b4b4, Te6edf3destTb4b4b4)Tb4b4b4;
Te6edf3Intent Te6edf3share Tff7b72= Tff7b72new Te6edf3IntentTb4b4b4(Te6edf3IntentTb4b4b4.Te6edf3ACTION_SENDTb4b4b4)Tb4b4b4;
Te6edf3shareTb4b4b4.Te6edf3setTypeTb4b4b4(Ta5d6ff"Ta5d6ffapplication/vnd.android.package-archiveTa5d6ff"Tb4b4b4)Tb4b4b4;
Te6edf3shareTb4b4b4.Te6edf3putExtraTb4b4b4(Te6edf3IntentTb4b4b4.Te6edf3EXTRA_STREAMTb4b4b4, Te6edf3uriTb4b4b4)Tb4b4b4;
Te6edf3shareTb4b4b4.Te6edf3addFlagsTb4b4b4(Te6edf3IntentTb4b4b4.Te6edf3FLAG_GRANT_READ_URI_PERMISSIONTb4b4b4)Tb4b4b4;
Te6edf3shareTb4b4b4.Te6edf3setClipDataTb4b4b4(
Te6edf3ClipDataTb4b4b4.Te6edf3newUriTb4b4b4(
Te6edf3activityTb4b4b4.Te6edf3getContentResolverTb4b4b4(Tb4b4b4)Tb4b4b4,
Te6edf3activityTb4b4b4.Te6edf3getStringTb4b4b4(Te6edf3RTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3share_apk_chooser_titleTb4b4b4)Tb4b4b4,
Te6edf3uriTb4b4b4)Tb4b4b4)Tb4b4b4;
Te6edf3activityTb4b4b4.Te6edf3startActivityTb4b4b4(
Te6edf3IntentTb4b4b4.Te6edf3createChooserTb4b4b4(
Te6edf3shareTb4b4b4, Te6edf3activityTb4b4b4.Te6edf3getStringTb4b4b4(Te6edf3RTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3share_apk_chooser_titleTb4b4b4)Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3Exception Te6edf3eTb4b4b4) Tb4b4b4{
Te6edf3String Te6edf3msg Tff7b72= Te6edf3activityTb4b4b4.Te6edf3getStringTb4b4b4(Te6edf3RTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3share_apk_failedTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3eTb4b4b4.Te6edf3getMessageTb4b4b4(Tb4b4b4) Tff7b72!Tff7b72= Tff7b72null Tff7b72&Tff7b72& Tff7b72!Te6edf3eTb4b4b4.Te6edf3getMessageTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3isEmptyTb4b4b4(Tb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3msg Tff7b72= Te6edf3msg Tff7b72+ Ta5d6ff"Ta5d6ff: Ta5d6ff" Tff7b72+ Te6edf3eTb4b4b4.Te6edf3getMessageTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Te6edf3ToastTb4b4b4.Te6edf3makeTextTb4b4b4(Te6edf3activityTb4b4b4, Te6edf3msgTb4b4b4, Te6edf3ToastTb4b4b4.Te6edf3LENGTH_LONGTb4b4b4)Tb4b4b4.Te6edf3showTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tf0883e@JavascriptInterface
Tff7b72public Tffa657boolean Td2a8ffhasBluetoothPermissionsTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3BuildTb4b4b4.Te6edf3VERSIONTb4b4b4.Te6edf3SDK_INT Tff7b72< Te6edf3BuildTb4b4b4.Te6edf3VERSION_CODESTb4b4b4.Te6edf3STb4b4b4) Tb4b4b4{
Tff7b72return Tff7b72trueTb4b4b4;
Tb4b4b4}
Tff7b72return Te6edf3ContextCompatTb4b4b4.Te6edf3checkSelfPermissionTb4b4b4(Te6edf3activityTb4b4b4, Te6edf3ManifestTb4b4b4.Te6edf3permissionTb4b4b4.Te6edf3BLUETOOTH_CONNECTTb4b4b4)
Tff7b72=Tff7b72= Te6edf3PackageManagerTb4b4b4.Te6edf3PERMISSION_GRANTED
Tff7b72&Tff7b72& Te6edf3ContextCompatTb4b4b4.Te6edf3checkSelfPermissionTb4b4b4(Te6edf3activityTb4b4b4, Te6edf3ManifestTb4b4b4.Te6edf3permissionTb4b4b4.Te6edf3BLUETOOTH_SCANTb4b4b4)
Tff7b72=Tff7b72= Te6edf3PackageManagerTb4b4b4.Te6edf3PERMISSION_GRANTEDTb4b4b4;
Tb4b4b4}
Tf0883e@JavascriptInterface
Tff7b72public Te6edf3String Td2a8ffrequestBluetoothPermissionsTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3BuildTb4b4b4.Te6edf3VERSIONTb4b4b4.Te6edf3SDK_INT Tff7b72< Te6edf3BuildTb4b4b4.Te6edf3VERSION_CODESTb4b4b4.Te6edf3STb4b4b4) Tb4b4b4{
Tff7b72return Ta5d6ff"Ta5d6ffgrantedTa5d6ff"Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3hasBluetoothPermissionsTb4b4b4(Tb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72return Ta5d6ff"Ta5d6ffgrantedTa5d6ff"Tb4b4b4;
Tb4b4b4}
Tff7b72final Te6edf3StringTff7b72[Tff7b72] Te6edf3needed Tff7b72= Tff7b72new Te6edf3StringTff7b72[Tff7b72] Tb4b4b4{
Te6edf3ManifestTb4b4b4.Te6edf3permissionTb4b4b4.Te6edf3BLUETOOTH_CONNECTTb4b4b4,
Te6edf3ManifestTb4b4b4.Te6edf3permissionTb4b4b4.Te6edf3BLUETOOTH_SCANTb4b4b4,
Tb4b4b4}Tb4b4b4;
Tffa657boolean Te6edf3canPrompt Tff7b72= Tff7b72falseTb4b4b4;
Tff7b72for Tb4b4b4(Te6edf3String Te6edf3permission Tb4b4b4: Te6edf3neededTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3ContextCompatTb4b4b4.Te6edf3checkSelfPermissionTb4b4b4(Te6edf3activityTb4b4b4, Te6edf3permissionTb4b4b4)
Tff7b72!Tff7b72= Te6edf3PackageManagerTb4b4b4.Te6edf3PERMISSION_GRANTEDTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3ActivityCompatTb4b4b4.Te6edf3shouldShowRequestPermissionRationaleTb4b4b4(Te6edf3activityTb4b4b4, Te6edf3permissionTb4b4b4)
Tff7b72|Tff7b72| Tff7b72!Te6edf3activityTb4b4b4.Te6edf3wasBluetoothPermissionDeniedPermanentlyTb4b4b4(Te6edf3permissionTb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3canPrompt Tff7b72= Tff7b72trueTb4b4b4;
Tff7b72breakTb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tb4b4b4}
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3canPromptTb4b4b4) Tb4b4b4{
Te6edf3activityTb4b4b4.Te6edf3runOnUiThreadTb4b4b4(Te6edf3activityTb4b4b4:Tb4b4b4:Te6edf3openAppPermissionSettingsTb4b4b4)Tb4b4b4;
Tff7b72return Ta5d6ff"Ta5d6ffsettingsTa5d6ff"Tb4b4b4;
Tb4b4b4}
Te6edf3activityTb4b4b4.Te6edf3runOnUiThreadTb4b4b4(Tb4b4b4(Tb4b4b4) Tff7b72-Tff7b72> Tb4b4b4{
Te6edf3ListTff7b72<Te6edf3StringTff7b72> Te6edf3missing Tff7b72= Tff7b72new Te6edf3ArrayListTff7b72<Tff7b72>Tb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3activityTb4b4b4.Te6edf3addIfMissingTb4b4b4(Te6edf3missingTb4b4b4, Te6edf3ManifestTb4b4b4.Te6edf3permissionTb4b4b4.Te6edf3BLUETOOTH_CONNECTTb4b4b4)Tb4b4b4;
Te6edf3activityTb4b4b4.Te6edf3addIfMissingTb4b4b4(Te6edf3missingTb4b4b4, Te6edf3ManifestTb4b4b4.Te6edf3permissionTb4b4b4.Te6edf3BLUETOOTH_SCANTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3missingTb4b4b4.Te6edf3isEmptyTb4b4b4(Tb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72returnTb4b4b4;
Tb4b4b4}
Tff7b72for Tb4b4b4(Te6edf3String Te6edf3permission Tb4b4b4: Te6edf3missingTb4b4b4) Tb4b4b4{
Te6edf3activityTb4b4b4.Te6edf3markBluetoothPermissionPromptedTb4b4b4(Te6edf3permissionTb4b4b4)Tb4b4b4;
Tb4b4b4}
Te6edf3ActivityCompatTb4b4b4.Te6edf3requestPermissionsTb4b4b4(
Te6edf3activityTb4b4b4,
Te6edf3missingTb4b4b4.Te6edf3toArrayTb4b4b4(Tff7b72new Te6edf3StringTff7b72[T79c0ff0Tff7b72]Tb4b4b4)Tb4b4b4,
Te6edf3RNODE_BLUETOOTH_PERMISSION_REQUEST_CODE
Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72return Ta5d6ff"Ta5d6ffrequestedTa5d6ff"Tb4b4b4;
Tb4b4b4}
Tf0883e@JavascriptInterface
Tff7b72public Tffa657boolean Td2a8ffhasUsbPermissionsTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3UsbManager Te6edf3manager Tff7b72= Tb4b4b4(Te6edf3UsbManagerTb4b4b4) Te6edf3activityTb4b4b4.Te6edf3getSystemServiceTb4b4b4(Te6edf3ContextTb4b4b4.Te6edf3USB_SERVICETb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3manager Tff7b72=Tff7b72= Tff7b72nullTb4b4b4) Tb4b4b4{
Tff7b72return Tff7b72falseTb4b4b4;
Tb4b4b4}
Te6edf3javaTb4b4b4.Te6edf3utilTb4b4b4.Te6edf3HashMapTff7b72<Te6edf3StringTb4b4b4, Te6edf3androidTb4b4b4.Te6edf3hardwareTb4b4b4.Te6edf3usbTb4b4b4.Te6edf3UsbDeviceTff7b72> Te6edf3devices Tff7b72=
Te6edf3managerTb4b4b4.Te6edf3getDeviceListTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3devices Tff7b72=Tff7b72= Tff7b72null Tff7b72|Tff7b72| Te6edf3devicesTb4b4b4.Te6edf3isEmptyTb4b4b4(Tb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72return Tff7b72trueTb4b4b4;
Tb4b4b4}
Tff7b72for Tb4b4b4(Te6edf3androidTb4b4b4.Te6edf3hardwareTb4b4b4.Te6edf3usbTb4b4b4.Te6edf3UsbDevice Te6edf3device Tb4b4b4: Te6edf3devicesTb4b4b4.Te6edf3valuesTb4b4b4(Tb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3managerTb4b4b4.Te6edf3hasPermissionTb4b4b4(Te6edf3deviceTb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72return Tff7b72falseTb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tff7b72return Tff7b72trueTb4b4b4;
Tb4b4b4}
Tf0883e@JavascriptInterface
Tff7b72public Te6edf3String Td2a8ffrequestUsbPermissionsTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3activityTb4b4b4.Te6edf3runOnUiThreadTb4b4b4(Tb4b4b4(Tb4b4b4) Tff7b72-Tff7b72> Tb4b4b4{
Tff7b72try Tb4b4b4{
Te6edf3activityTb4b4b4.Te6edf3startActivityTb4b4b4(
Tff7b72new Te6edf3IntentTb4b4b4(Te6edf3activityTb4b4b4, Te6edf3comTb4b4b4.Te6edf3meshchatxTb4b4b4.Te6edf3rnodeTb4b4b4.Te6edf3RNodeFlasherActivityTb4b4b4.Te6edf3classTb4b4b4)
Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3Exception Te6edf3eTb4b4b4) Tb4b4b4{
Te6edf3ToastTb4b4b4.Te6edf3makeTextTb4b4b4(
Te6edf3activityTb4b4b4,
Ta5d6ff"Ta5d6ffCould not open native RNode flasherTa5d6ff"Tb4b4b4,
Te6edf3ToastTb4b4b4.Te6edf3LENGTH_SHORTTb4b4b4)Tb4b4b4.Te6edf3showTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72return Ta5d6ff"Ta5d6ffrequestedTa5d6ff"Tb4b4b4;
Tb4b4b4}
Tf0883e@JavascriptInterface
Tff7b72public Tffa657boolean Td2a8ffhasNativeRNodeFlasherTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72return Tff7b72trueTb4b4b4;
Tb4b4b4}
Tf0883e@JavascriptInterface
Tff7b72public Tffa657void Td2a8ffopenRNodeFlasherTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3activityTb4b4b4.Te6edf3runOnUiThreadTb4b4b4(Tb4b4b4(Tb4b4b4) Tff7b72-Tff7b72> Tb4b4b4{
Tff7b72try Tb4b4b4{
Te6edf3activityTb4b4b4.Te6edf3startActivityTb4b4b4(
Tff7b72new Te6edf3IntentTb4b4b4(Te6edf3activityTb4b4b4, Te6edf3comTb4b4b4.Te6edf3meshchatxTb4b4b4.Te6edf3rnodeTb4b4b4.Te6edf3RNodeFlasherActivityTb4b4b4.Te6edf3classTb4b4b4)
Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3Exception Te6edf3eTb4b4b4) Tb4b4b4{
Te6edf3ToastTb4b4b4.Te6edf3makeTextTb4b4b4(
Te6edf3activityTb4b4b4,
Ta5d6ff"Ta5d6ffCould not open native RNode flasherTa5d6ff"Tb4b4b4,
Te6edf3ToastTb4b4b4.Te6edf3LENGTH_SHORTTb4b4b4)Tb4b4b4.Te6edf3showTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tf0883e@JavascriptInterface
Tff7b72public Tffa657void Td2a8ffopenBluetoothSettingsTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3activityTb4b4b4.Te6edf3runOnUiThreadTb4b4b4(Te6edf3activityTb4b4b4:Tb4b4b4:Te6edf3openAppPermissionSettingsTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tf0883e@JavascriptInterface
Tff7b72public Tffa657void Td2a8ffopenUsbSettingsTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3activityTb4b4b4.Te6edf3runOnUiThreadTb4b4b4(Te6edf3activityTb4b4b4:Tb4b4b4:Te6edf3openAppPermissionSettingsTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tf0883e@JavascriptInterface
Tff7b72public Tffa657boolean Td2a8ffisNativePcmAudioAvailableTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3TelephoneNativeAudioSessionTb4b4b4.Te6edf3canRunTb4b4b4(Te6edf3activityTb4b4b4)
Tff7b72&Tff7b72& Te6edf3WavPcmAttachmentRecorderTb4b4b4.Te6edf3canStartTb4b4b4(Te6edf3activityTb4b4b4)Tb4b4b4;
Tb4b4b4}
T8b949e/**
* Voice-note attachment capture (PCM WAV) only checks the attachment recorder,
* independent of telephone native audio, so the WebView can always prefer
* native 48 kHz mono PCM for LXST Opus encoding on the server.
*/
Tf0883e@JavascriptInterface
Tff7b72public Tffa657boolean Td2a8ffisNativeWavAttachmentAvailableTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3WavPcmAttachmentRecorderTb4b4b4.Te6edf3canStartTb4b4b4(Te6edf3activityTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tf0883e@JavascriptInterface
Tff7b72public Tffa657boolean Td2a8ffisTelephoneNativeAudioAvailableTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3TelephoneNativeAudioSessionTb4b4b4.Te6edf3canRunTb4b4b4(Te6edf3activityTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tf0883e@JavascriptInterface
Tff7b72public Te6edf3String Td2a8ffstartTelephoneNativeAudioTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72try Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3activityTb4b4b4.Te6edf3telephoneNativeSession Tff7b72=Tff7b72= Tff7b72nullTb4b4b4) Tb4b4b4{
Te6edf3activityTb4b4b4.Te6edf3telephoneNativeSession Tff7b72= Tff7b72new Te6edf3TelephoneNativeAudioSessionTb4b4b4(Te6edf3activityTb4b4b4)Tb4b4b4;
Tb4b4b4}
Te6edf3activityTb4b4b4.Te6edf3telephoneNativeSessionTb4b4b4.Te6edf3startTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72return Ta5d6ff"Ta5d6ffokTa5d6ff"Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3Exception Te6edf3eTb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3eTb4b4b4.Te6edf3getMessageTb4b4b4(Tb4b4b4) Tff7b72!Tff7b72= Tff7b72null Tff7b72? Te6edf3eTb4b4b4.Te6edf3getMessageTb4b4b4(Tb4b4b4) Tb4b4b4: Ta5d6ff"Ta5d6fferrTa5d6ff"Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tf0883e@JavascriptInterface
Tff7b72public Tffa657void Td2a8ffstopTelephoneNativeAudioTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72try Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3activityTb4b4b4.Te6edf3telephoneNativeSession Tff7b72!Tff7b72= Tff7b72nullTb4b4b4) Tb4b4b4{
Te6edf3activityTb4b4b4.Te6edf3telephoneNativeSessionTb4b4b4.Te6edf3stopTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3Exception Te6edf3ignoredTb4b4b4) Tb4b4b4{
Tb4b4b4}
Tb4b4b4}
Tf0883e@JavascriptInterface
Tff7b72public Tffa657boolean Td2a8ffisTelephoneNativeAudioActiveTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3activityTb4b4b4.Te6edf3telephoneNativeSession Tff7b72!Tff7b72= Tff7b72null Tff7b72&Tff7b72& Te6edf3activityTb4b4b4.Te6edf3telephoneNativeSessionTb4b4b4.Te6edf3isActiveTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tf0883e@JavascriptInterface
Tff7b72public Te6edf3String Td2a8ffstartNativeWavAttachmentTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72try Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3activityTb4b4b4.Te6edf3attachmentPcmRecorder Tff7b72=Tff7b72= Tff7b72nullTb4b4b4) Tb4b4b4{
Te6edf3activityTb4b4b4.Te6edf3attachmentPcmRecorder Tff7b72= Tff7b72new Te6edf3WavPcmAttachmentRecorderTb4b4b4(Te6edf3activityTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72return Te6edf3activityTb4b4b4.Te6edf3attachmentPcmRecorderTb4b4b4.Te6edf3startTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3Exception Te6edf3eTb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3eTb4b4b4.Te6edf3getMessageTb4b4b4(Tb4b4b4) Tff7b72!Tff7b72= Tff7b72null Tff7b72? Te6edf3eTb4b4b4.Te6edf3getMessageTb4b4b4(Tb4b4b4) Tb4b4b4: Ta5d6ff"Ta5d6fferrTa5d6ff"Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tf0883e@JavascriptInterface
Tff7b72public Tffa657void Td2a8ffstopNativeWavAttachmentTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3activityTb4b4b4.Te6edf3attachmentPcmRecorder Tff7b72=Tff7b72= Tff7b72nullTb4b4b4) Tb4b4b4{
Tff7b72returnTb4b4b4;
Tb4b4b4}
Tff7b72final Te6edf3WavPcmAttachmentRecorder Te6edf3r Tff7b72= Te6edf3activityTb4b4b4.Te6edf3attachmentPcmRecorderTb4b4b4;
Tff7b72new Te6edf3ThreadTb4b4b4(
Tb4b4b4(Tb4b4b4) Tff7b72-Tff7b72> Tb4b4b4{
Te6edf3String Te6edf3b64 Tff7b72= Te6edf3rTb4b4b4.Te6edf3stopBase64WavTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3activityTb4b4b4.Te6edf3runOnUiThreadTb4b4b4(
Tb4b4b4(Tb4b4b4) Tff7b72-Tff7b72> Tb4b4b4{
Tff7b72try Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3activityTb4b4b4.Te6edf3webView Tff7b72=Tff7b72= Tff7b72nullTb4b4b4) Tb4b4b4{
Tff7b72returnTb4b4b4;
Tb4b4b4}
Te6edf3orgTb4b4b4.Te6edf3jsonTb4b4b4.Te6edf3JSONObject Te6edf3o Tff7b72= Tff7b72new Te6edf3orgTb4b4b4.Te6edf3jsonTb4b4b4.Te6edf3JSONObjectTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3b64 Tff7b72=Tff7b72= Tff7b72nullTb4b4b4) Tb4b4b4{
Te6edf3oTb4b4b4.Te6edf3putTb4b4b4(Ta5d6ff"Ta5d6ffokTa5d6ff"Tb4b4b4, Tff7b72falseTb4b4b4)Tb4b4b4;
Te6edf3oTb4b4b4.Te6edf3putTb4b4b4(Ta5d6ff"Ta5d6fferrorTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffout_of_memoryTa5d6ff"Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72else Tff7b72if Tb4b4b4(Te6edf3b64Tb4b4b4.Te6edf3isEmptyTb4b4b4(Tb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3oTb4b4b4.Te6edf3putTb4b4b4(Ta5d6ff"Ta5d6ffokTa5d6ff"Tb4b4b4, Tff7b72falseTb4b4b4)Tb4b4b4;
Te6edf3oTb4b4b4.Te6edf3putTb4b4b4(Ta5d6ff"Ta5d6fferrorTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffemptyTa5d6ff"Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72else Tb4b4b4{
Te6edf3oTb4b4b4.Te6edf3putTb4b4b4(Ta5d6ff"Ta5d6ffokTa5d6ff"Tb4b4b4, Tff7b72trueTb4b4b4)Tb4b4b4;
Te6edf3oTb4b4b4.Te6edf3putTb4b4b4(Ta5d6ff"Ta5d6ffdataTa5d6ff"Tb4b4b4, Te6edf3b64Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Te6edf3String Te6edf3p Tff7b72= Te6edf3oTb4b4b4.Te6edf3toStringTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3activityTb4b4b4.Te6edf3webViewTb4b4b4.Te6edf3evaluateJavascriptTb4b4b4(
Ta5d6ff"Ta5d6fftry{if(window.__meshchatXNative&&typeof window.__meshchatXNative.onWav==='function'){Ta5d6ff"
Tff7b72+ Ta5d6ff"Ta5d6ffvar p=Ta5d6ff" Tff7b72+ Te6edf3p
Tff7b72+ Ta5d6ff"Ta5d6ff; window.__meshchatXNative.onWav(p);}}catch(e){}Ta5d6ff"Tb4b4b4,
Tff7b72null
Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3Exception Te6edf3ignoredTb4b4b4) Tb4b4b4{
Tb4b4b4} Tff7b72finally Tb4b4b4{
Te6edf3activityTb4b4b4.Te6edf3attachmentPcmRecorder Tff7b72= Tff7b72nullTb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Ta5d6ff"Ta5d6ffmeshchatx-attach-stopTa5d6ff"
Tb4b4b4)Tb4b4b4.Te6edf3startTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tf0883e@JavascriptInterface
Tff7b72public Tffa657void Td2a8ffcancelNativeWavAttachmentTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3activityTb4b4b4.Te6edf3attachmentPcmRecorder Tff7b72!Tff7b72= Tff7b72nullTb4b4b4) Tb4b4b4{
Te6edf3activityTb4b4b4.Te6edf3attachmentPcmRecorderTb4b4b4.Te6edf3cancelTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3activityTb4b4b4.Te6edf3attachmentPcmRecorder Tff7b72= Tff7b72nullTb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tf0883e@JavascriptInterface
Tff7b72public Tffa657void Td2a8ffshowNotificationTb4b4b4(Te6edf3String Te6edf3titleTb4b4b4, Te6edf3String Te6edf3bodyTb4b4b4) Tb4b4b4{
Te6edf3AndroidNotificationBridgeTb4b4b4.Te6edf3showInboundMessageTb4b4b4(Te6edf3titleTb4b4b4, Te6edf3bodyTb4b4b4, Tff7b72nullTb4b4b4, Tff7b72nullTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tf0883e@JavascriptInterface
Tff7b72public Tffa657void Td2a8ffshowMessageNotificationTb4b4b4(Te6edf3String Te6edf3titleTb4b4b4, Te6edf3String Te6edf3bodyTb4b4b4, Te6edf3String Te6edf3destinationHashTb4b4b4) Tb4b4b4{
Te6edf3AndroidNotificationBridgeTb4b4b4.Te6edf3showInboundMessageTb4b4b4(Te6edf3titleTb4b4b4, Te6edf3bodyTb4b4b4, Tff7b72nullTb4b4b4, Te6edf3destinationHashTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tf0883e@JavascriptInterface
Tff7b72public Tffa657void Td2a8ffcancelMessageNotificationsTb4b4b4(Te6edf3String Te6edf3destinationHashTb4b4b4) Tb4b4b4{
Te6edf3AndroidNotificationBridgeTb4b4b4.Te6edf3cancelMessageNotificationsTb4b4b4(Te6edf3destinationHashTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tf0883e@JavascriptInterface
Tff7b72public Tffa657void Td2a8ffcancelAllMessageNotificationsTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3AndroidNotificationBridgeTb4b4b4.Te6edf3cancelAllMessageNotificationsTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tf0883e@JavascriptInterface
Tff7b72public Tffa657void Td2a8ffsetOpenConversationHashesTb4b4b4(Te6edf3String Te6edf3csvTb4b4b4) Tb4b4b4{
Te6edf3AndroidNotificationBridgeTb4b4b4.Te6edf3setOpenConversationHashesTb4b4b4(Te6edf3csvTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tf0883e@JavascriptInterface
Tff7b72public Tffa657void Td2a8ffsetDoNotDisturbEnabledTb4b4b4(Tffa657boolean Te6edf3enabledTb4b4b4) Tb4b4b4{
Te6edf3AndroidNotificationBridgeTb4b4b4.Te6edf3setDoNotDisturbEnabledTb4b4b4(Te6edf3enabledTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tf0883e@JavascriptInterface
Tff7b72public Tffa657void Td2a8ffshowIncomingCallNotificationTb4b4b4(Te6edf3String Te6edf3callerNameTb4b4b4) Tb4b4b4{
Te6edf3AndroidNotificationBridgeTb4b4b4.Te6edf3showIncomingCallTb4b4b4(Te6edf3callerNameTb4b4b4, Tff7b72nullTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tf0883e@JavascriptInterface
Tff7b72public Tffa657void Td2a8ffshowMissedCallNotificationTb4b4b4(Te6edf3String Te6edf3titleTb4b4b4, Te6edf3String Te6edf3bodyTb4b4b4) Tb4b4b4{
Te6edf3AndroidNotificationBridgeTb4b4b4.Te6edf3showMissedCallTb4b4b4(Te6edf3titleTb4b4b4, Te6edf3bodyTb4b4b4, Tff7b72nullTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tf0883e@JavascriptInterface
Tff7b72public Tffa657void Td2a8ffcancelIncomingCallNotificationTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3AndroidNotificationBridgeTb4b4b4.Te6edf3cancelIncomingCallNotificationTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tf0883e@JavascriptInterface
Tff7b72public Te6edf3String Td2a8ffgetAndroidStorageStatusTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72try Tb4b4b4{
Tffa657int Te6edf3versionCode Tff7b72= Te6edf3activityTb4b4b4.Te6edf3getPackageManagerTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3getPackageInfoTb4b4b4(Te6edf3activityTb4b4b4.Te6edf3getPackageNameTb4b4b4(Tb4b4b4)Tb4b4b4, T79c0ff0Tb4b4b4)Tb4b4b4.Te6edf3versionCodeTb4b4b4;
Tff7b72return Te6edf3AndroidStorageManagerTb4b4b4.Te6edf3statusJsonTb4b4b4(Te6edf3activityTb4b4b4, Te6edf3versionCodeTb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3PackageManagerTb4b4b4.Te6edf3NameNotFoundException Te6edf3eTb4b4b4) Tb4b4b4{
Tff7b72return Ta5d6ff"Ta5d6ff{}Ta5d6ff"Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3Exception Te6edf3eTb4b4b4) Tb4b4b4{
Tff7b72return Ta5d6ff"Ta5d6ff{}Ta5d6ff"Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tf0883e@JavascriptInterface
Tff7b72public Tffa657void Td2a8ffsetAndroidStorageModeTb4b4b4(Te6edf3String Te6edf3modeTb4b4b4) Tb4b4b4{
Te6edf3AndroidStorageManagerTb4b4b4.Te6edf3setConfiguredModeTb4b4b4(Te6edf3activityTb4b4b4, Te6edf3modeTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tf0883e@JavascriptInterface
Tff7b72public Tffa657void Td2a8ffmarkAndroidStorageSetupCompletedTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3AndroidStorageManagerTb4b4b4.Te6edf3markSetupCompletedTb4b4b4(Te6edf3activityTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tf0883e@JavascriptInterface
Tff7b72public Tffa657void Td2a8ffscheduleCopyToExternalAndRestartTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3AndroidStorageManagerTb4b4b4.Te6edf3scheduleCopyToExternalTb4b4b4(Te6edf3activityTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tf0883e@JavascriptInterface
Tff7b72public Tffa657void Td2a8ffkeepInternalStorageAndDismissTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72try Tb4b4b4{
Tffa657int Te6edf3versionCode Tff7b72=
Te6edf3activityTb4b4b4.Te6edf3getPackageManagerTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3getPackageInfoTb4b4b4(Te6edf3activityTb4b4b4.Te6edf3getPackageNameTb4b4b4(Tb4b4b4)Tb4b4b4, T79c0ff0Tb4b4b4)Tb4b4b4.Te6edf3versionCodeTb4b4b4;
Te6edf3AndroidStorageManagerTb4b4b4.Te6edf3keepInternalAndDismissUpgradeTb4b4b4(Te6edf3activityTb4b4b4, Te6edf3versionCodeTb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3PackageManagerTb4b4b4.Te6edf3NameNotFoundException Te6edf3ignoredTb4b4b4) Tb4b4b4{
Te6edf3AndroidStorageManagerTb4b4b4.Te6edf3setConfiguredModeTb4b4b4(Te6edf3activityTb4b4b4, Te6edf3AndroidStorageManagerTb4b4b4.Te6edf3MODE_INTERNALTb4b4b4)Tb4b4b4;
Te6edf3AndroidStorageManagerTb4b4b4.Te6edf3markSetupCompletedTb4b4b4(Te6edf3activityTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tf0883e@JavascriptInterface
Tff7b72public Tffa657void Td2a8ffrestartAppTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3activityTb4b4b4.Te6edf3runOnUiThreadTb4b4b4(Tb4b4b4(Tb4b4b4) Tff7b72-Tff7b72> Tb4b4b4{
Te6edf3activityTb4b4b4.Te6edf3finishAffinityTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3androidTb4b4b4.Te6edf3osTb4b4b4.Te6edf3ProcessTb4b4b4.Te6edf3killProcessTb4b4b4(Te6edf3androidTb4b4b4.Te6edf3osTb4b4b4.Te6edf3ProcessTb4b4b4.Te6edf3myPidTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tb4b4b4}
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────